当前位置: 首页 > 面试题库 >

如何对promises数组进行promise.all?

甘永春
2023-03-14
问题内容

我正在尝试并行运行功能数组,当每个人都完成时,我想要处理该结果。我正在使用诺言。现在,我可以将所有函数放在一个数组中,并可以执行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
});


 类似资料:
  • 有人知道一种方法(如果可能的话也可以使用lodash)通过对象键对对象数组进行分组,然后根据分组创建新的对象数组吗?例如,我有一个汽车对象数组: 我想制作一个由分组的新汽车对象数组:

  • 问题内容: 有谁知道(如果可能的话,也用破折号)通过对象键对对象数组进行分组然后根据分组创建新的对象数组的方法吗?例如,我有一系列汽车对象: 我想制作一组新的汽车对象,并按以下类别分组: 问题答案: 。简单,并允许在分组结构中的对象中进行一些重复。 但是,OP还要求删除重复的密钥。如果您想一路走下去: 产量: 如果您想使用Underscore.js进行此操作,请注意,其版本称为。

  • 我有app,我有很多不同风格的按钮组件(我特意把它分开,以提高可读性),例如:普通、概述、文本、链接和其他。我想创建一个特殊的组件,在其中我将传递prop,component将返回我需要的按钮组件。现在我制作了这个组件,但我必须传递我可能不需要的道具。我如何解决这个问题,或者你知道分组的不同实现方式? 分组组件:

  • 问题内容: 如何在Swift中随机或随机排列数组中的元素?例如,如果我的阵列由52张扑克牌,我想 洗牌 的阵列,以洗牌。 问题答案: 该答案详细说明了如何在Swift 4.2+中使用快速统一的算法(Fisher- Yates)进行改组,以及如何在各个早期版本的Swift中添加相同功能。每个Swift版本的命名和行为都与该版本的变异和非变异排序方法匹配。 并且是从Swift 4.2开始原生的 用法示

  • 我有以下模式- [名称:StringType,Grades:ArrayType(StructType(StructField(subject_grades),ArrayType(StructType(StructField(subject,StringType,false)),StructField(grade,LongType,false) 我想在数组中的subject字段上,该数组位于grad

  • 问题内容: 我的数组不包含任何字符串。但是它包含对象引用。每个对象引用都通过toString方法返回名称,id,作者和发布者。 现在,我需要按名称对对象数组进行排序。我知道如何排序,但是我不知道如何从对象中提取名称并对它们进行排序。 问题答案: 你有两种方法可以使用Arrays实用程序类 实现一个Comparator并将数组与比较器一起传递给sort方法,该方法将其作为第二个参数。 在对象所属的类