Promise.all返回更多值

时间:2018-04-23 16:08:44

标签: javascript node.js es6-promise

我正在尝试同时运行两个异步调用并等待它们完成Promise.all。如何在nodejs中的es6中使用async / await使Promise.all返回多个值?我希望我能在外面看到指定的变量。这段代码错了,但代表了我的需要。

  Promise.all([
    var rowA = await buildRow(example, countries),
    var rowM = await buildRow(example, countries)
  ])
  console.log(rowA+rowB)

有没有办法在范围之外看到这些变量?

1 个答案:

答案 0 :(得分:4)

  

如何让Promise.all使用返回多个值   在nodejs的es6中是async / await吗?

Promise.all已解析的值始终是一个数组,其中每个项目是传递给它的各个promise的已解析值。结果与承诺的顺序相同。

  const [rowA, rowB] = await Promise.all([
        buildRow(example, countries),
        buildRow(example, countries)
  ]);

  console.log(rowA, rowB);

使用解构,我们将rowA分配给第一个结果,将rowB分配给第二个结果。