簡體   English   中英

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

只需返回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

無論如何,謝謝你的回答,我被困在這:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM