Promise.all当它从.then()callback返回时不工作

我正在使用Promise Node.js库,我想要做到以下几点:

  1. 执行返回Promise的asynchronous操作。
  2. 当该操作完成时,返回两个并行asynchronous操作完成时完成的Promise。

我使用的代码如下:

var Promise = require('promise'); var resolved1 = Promise.resolve(1); var resolvedAll = resolved1.then(function() { return Promise.all(Promise.resolve(2), Promise.resolve(3)); }); var print = resolvedAll.then(function(values) { console.log(values); }); print.done(function () { console.log('done'); }); 

但是,这个代码不能按预期工作,因为它打印:

 [] done 

从docu中,Promise.all返回一个promise,当迭代参数中的所有promise都解决了的时候,这个promise就会被parsing。 所以在理论上解决所有的承诺应该完成,直到所有的承诺传递给承诺, Promise.all已经完成,但这不是在这里发生的事情。

任何想法为什么Promise.all不按预期工作? 这可能是一个错误? 任何人都知道的替代scheme返回一个.then()callback多重承诺?

欢呼声,高尔德

Promise.all期望一个数组:

 Promise.all([Promise.resolve(2), Promise.resolve(3)]);