Promise.all当它从.then()callback返回时不工作
我正在使用Promise Node.js库,我想要做到以下几点:
- 执行返回Promise的asynchronous操作。
- 当该操作完成时,返回两个并行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)]);