title: What's the purpose of a Promise without an async operation?
body: <p>I found the following comment in a Polymer web component </p>
  
  <p><a href="https://github.com/PolymerElements/app-storage/blob/master/app-localstorage/app-localstorage-document.html" rel="nofollow noreferrer">https://github.com/PolymerElements/app-storage/blob/master/app-localstorage/app-localstorage-document.html</a></p>
  
  <blockquote>
    <p>app-localstorage-document is the reference implementation of an
    element that uses <code>AppStorageBehavior</code>. Reading its code is a good way
    to get started writing your own storage element.</p>
  </blockquote>
  
  <p>So I started to read the code, but didn't understand why the author is using promises like this:</p>
  
  <pre><code>saveValue: function(key) {
      try {
        this.__setStorageValue(key, this.data);       
      } 
      catch (e) {
        return Promise.reject(e);
      }
      this.key = key;
      return Promise.resolve();
    }
  </code></pre>
  
  <p>The only idea I have is that I can use the then/catch notation of promises</p>
  
  <pre><code>saveValue(42)
    .then(() =&gt; saveValue(21))
    .catch(() =&gt; ...);
  </code></pre>
  
  <p>But what's the difference between the "classic" way</p>
  
  <pre><code>try {
    saveValue(42);
    saveValue(21);
  } catch(e) {...}
  </code></pre>