title: How do you properly return multiple values from a Promise?
body: <p>I've recently run into a certain situation a couple of times, which I didn't know how to solve properly. Assume the following code:</p>
  <pre><code>somethingAsync()
    .then( afterSomething )
    .then( afterSomethingElse )
    
  function afterSomething( amazingData ) {
    return processAsync( amazingData );
  }
  function afterSomethingElse( processedData ) {
  }
  </code></pre>
  <p>Now a situation might arise where I would want to have access to <code>amazingData</code> in <code>afterSomethingElse</code>.</p>
  <p>One obvious solution would be to return an array or a hash from <code>afterSomething</code>, because, well, you can only return one value from a function. But I'm wondering if there is a way to have <code>afterSomethingElse</code> accept 2 parameters and invoke it likewise, as that seems a lot easier to document and understand.</p>
  <p>I'm only wondering about this possibility since there is <code>Q.spread</code>, which does something similar to what I want.</p>