如何使用 promises 遍历异步调用

How to loop over async calls using promises

我有一个值数组,我想循环并传递给异步调用,如下所示:

_.each(ids,function(id){
    doAsync(id);
});

我想等到所有异步调用都完成,然后.then() 做点什么。我怎样才能做到这一点?

您可能想使用 Promise.all:

var promises = [];
_.each(ids,function(id){
    promises.push(doAsync(id));
});
Promise.all(promises).then(...)

当然,在这种情况下,每个 doAsync 都必须 return 一个 Promise。