1. 程式人生 > >Promise.all() 和 Promise.race()

Promise.all() 和 Promise.race()

一、Promise.all()

接收一個引數,它必須是可以迭代的,比如陣列。(它返回一個Promise例項)
它通常用來處理一些併發的非同步操作,即它們的結果互不干擾,但是又需要非同步執行。它最終只有兩種狀態:成功或者失敗,當裡面的所有Promise例項狀態發生變化的時候它才會變。
它的狀態受引數內各個值的狀態影響,即裡面狀態全部為fulfilled時,它才會變成fulfilled,否則變成rejected
成功呼叫後返回一個數組,陣列的值是有序的,即按照傳入引數的陣列的值操作後返回的結果。
在這裡插入圖片描述

二、Promise.race()

Promise.race()和Promise.all()類似,都接收一個可以迭代的引數(如,陣列),但是不同之處是Promise.race()的狀態變化不是全部受引數內的狀態影響,一旦引數內有一個值的狀態發生的改變,那麼該Promise的狀態就是改變的狀態

。就跟race單詞的字面意思一樣,誰跑的快誰贏。
返回一個最先載入完的 Promise例項
在這裡插入圖片描述