title: How to document resolved values of JavaScript promises
body: <p>Given this code : </p>
  
  <pre><code>function asyncFoo() {
    return new Promise(function (fulfill, reject) {
      doAsyncStuff(function(err, data) {
        if(err) reject(new Error(err));
        else fulfill(new Bar(data));
      });
    });
  }
  </code></pre>
  
  <p>How can I document that <code>asyncFoo</code> will return a <code>Promise</code> that, when fulfilled will yield an instance of <code>Bar</code>, and when rejected will yield an instance of <code>Error</code>? </p>
  
  <pre><code>/**
   * @return &lt;&lt; Here, what do I have to write? &gt;&gt;
   */
  function asyncFoo() { ... }
  </code></pre>