title: kriskowal/q node.js q.all and spread
body: <p>I have a function that needs the result of three prior promises passed to it.  One is linearly dependent and the other two can run concurrently.  I want to use q.all to resolve the three promises, and then pass the results onto the fourth using .spread.  My code however does not work.  Any help would be appreciated.</p>
  
  <pre><code>var p1 = doWork(data);
  var p2 = p1.then(doMoreWork);
  var p3 = doConcurrentWork(data);
  
  return q.all([p1,p2,p3]).spread(funcWith3params)
          .fail(function(err) {
              console.log(err):
          }
  </code></pre>
  
  <p>I can trace the code in node-inspector and see that the first 3 promises are being called.  However, the function that .spread calls is not being called.  Any clues as to why?  Also .fail isn't being hit either.</p>