如何将Promise.all与其他Promise.all

How to chain a Promise.all with other Promises?

本文关键字:all Promise 其他      更新时间:2023-09-26

我想按以下顺序执行我的代码:

  1. 承诺1
  2. 等待1完成,然后同时执行Promise 2+3
  3. 最终函数等待Promise 2+3完成

我在弄清楚它时遇到了一些困难,到目前为止我的代码如下。

function getPromise1() {
  return new Promise((resolve, reject) => {
    // do something async
    resolve('myResult');
  });
}
function getPromise2() {
  return new Promise((resolve, reject) => {
    // do something async
    resolve('myResult');
  });
}
function getPromise3() {
  return new Promise((resolve, reject) => {
    // do something async
    resolve('myResult');
  });
}
getPromise1()
.then(
  Promise.all([getPromise2(), getPromise3()])
  .then() // ???
)
.then(() => console.log('Finished!'));

只返回Promise.all(...

getPromise1().then(() => {
  return Promise.all([getPromise2(), getPromise3()]);
}).then((args) => console.log(args)); // result from 2 and 3

我知道这是一个旧线程,但不是

() => {return Promise.all([getPromise2(), getPromise3()]);}

有点多余?胖箭头的想法是,你可以把它写为:

() => Promise.all([getPromise2(), getPromise3()])

这使得生成的代码更加清晰:

getPromise1().then(() => Promise.all([getPromise2(), getPromise3()]))
.then((args) => console.log(args)); // result from 2 and 3

不管怎样,谢谢你的回答,我被这个卡住了:)