-1
我正在使用蓝鸟的第一个nodejs应用程序。我有一个要求在for循环中调用一个异步方法,它为每个调用返回一个承诺。我想将所有这些承诺结合在一起,我怎样才能做到这一点。任何帮助深表感谢。循环异步调用并加入返回的承诺
我从mongodb中检索一组文档,我需要遍历返回的一组文档,并将字段作为参数传递给返回承诺的异步方法。因为我在循环中这样做,我需要一种将所有这些承诺结合到一个单一承诺中的方法。
我正在使用蓝鸟的第一个nodejs应用程序。我有一个要求在for循环中调用一个异步方法,它为每个调用返回一个承诺。我想将所有这些承诺结合在一起,我怎样才能做到这一点。任何帮助深表感谢。循环异步调用并加入返回的承诺
我从mongodb中检索一组文档,我需要遍历返回的一组文档,并将字段作为参数传递给返回承诺的异步方法。因为我在循环中这样做,我需要一种将所有这些承诺结合到一个单一承诺中的方法。
可以使用.all()
方法:http://bluebirdjs.com/docs/api/promise.all.html
例子:
var promises = [];
for (var i = 0; i < 100; ++i) {
promises.push(yourPromise);
}
Promise.all(promises).then(function(values) {
// All your promises are resolved
// Promises results are stored in values argument
console.log(values);
});
谢谢救星! –
你总是会得到一个更好,更具体的回答taylored到你的特殊情况,如果您包括您的相关代码。可能因为你使用的是蓝鸟,你可以使用一些漂亮的函数(比如'Promise.map()'来简化你的代码,但是在你包含实际代码之前我们无法确定。一些你的代码。 – jfriend00