微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如何为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中获取分组的promise.

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
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐