2024-05-01|閱讀時間 ‧ 約 22 分鐘

※ 認識非同步概念(三)

    什麼是 Promise.all?

    在有多個 Promise 的時候,使用 Promise.all 可以確保「所有的 Promise 都執行完以後,才進入 then」。

    Promise.all 語法結構

    Promise.all 接受的參數是陣列形式。

    raw-image

    什麼時候要使用 Promise.all?

    當程式需要處理多個 Promise 要執行時,而這些 Promise 之間沒有明確的先後順序,但一定需要「全都執行完」,才能進入後續流程,此時,你就可以考慮使用 Promise.all。

    Promise.all範例:

    const oneSecond = new Promise((resolve, reject) => {
    setTimeout (() => {
    //一秒後回傳資料
    resolve('one second')
    }, 1000)
    })
    const towSecond = new Promise ((resolve, reject) => {
    //兩秒回傳資料
    resolve('tow Second')
    }, 2000)
    const threeSecond = new Promise ((resolve, reject) => {
    //三秒回傳資料
    resolve('three Second')
    }, 2000)
    //等到三個Promise都成功回傳後,才執行接下去的流程
    Promise.all([oneSecond, towSecond, threeSecond ])
    .then(([oneSecond, towSecond, threeSecond ]) => {
    console.log(oneSecond, towSecond, threeSecond)
    })//輸出結果"one second","tow Second","three Second"
    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.