如何对promises数组进行promise.all?
我正在尝试并行运行功能数组,当每个人都完成时,我想要处理该结果。我正在使用诺言。现在,我可以将所有函数放在一个数组中,并可以执行Promise.all(函数数组),但是我有一个像
[[promise1, promise2], [promise3,promise4], [promise5,promise6]],
每个承诺都是承诺的功能。Promise参考文档说Promise.all中的参数应该是一个可迭代的对象,而我的数组是可迭代的。但这对我不起作用。我认为它正在执行[promise1,promise2]作为一个承诺,而不是个人的承诺。
谁能帮我实现目标,或者有更好的方法吗?
回答:
您还需要调用Promise.all
每个数组项:
const promise4all = Promise.all( promiseArray.map(function(innerPromiseArray) {
return Promise.all(innerPromiseArray);
})
);
或直接:
// Fix: Promise.all.bind is required because it seems like Promise.all// implementation relies on "this"
const promise4All = Promise.all(promiseArray.map(Promise.all.bind(Promise)))
// or
// const promise4All = Promise.all(promiseArray.map(p => Promise.all(p)))
这样,外部人Promise.all
就可以在其他人中获得分组的承诺Promise.all
:
promise4all.then(function(promiseGroupResult) { // promiseGroupResult is the actual result of each promise group
// and you'll be able to get each result this way: promiseGroupResult.somePropertyName
});
以上是 如何对promises数组进行promise.all? 的全部内容, 来源链接: utcz.com/qa/433197.html