如何将 Promise.all 与其他 Promise 链接起来?

How to chain a Promise.all with other Promises?

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

  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!'));

就returnPromise.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

无论如何,谢谢你的回答,我被这个困住了:)