我正在使用Promise Node.js库,我想执行以下操作:
我正在使用的代码如下:
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
从文档中,Promise.all返回一个promise,它在iterable参数中的所有promise都已解析时解析。所以理论上解决了所有不应该完成,直到传递给Promise.all
的所有承诺都已完成,但这不是这里发生的事情。
任何想法为什么Promise.all没有按预期工作?这可能是个错误吗?任何人都知道可以从.then()
回调中返回多个承诺的替代方案吗?
干杯, 盖尔德