Promise.all()與Promise.race()

1. Promise.all()

Promise.all(iterable)方法返回一個(gè)Promise實(shí)例。這個(gè)實(shí)例在iterable參數(shù)內(nèi)的所有Promise對象都resolved或者參數(shù)不包含Promise時(shí)回調(diào)完成。如果參數(shù)中有一個(gè)rejected,則此實(shí)例回調(diào)失敗,失敗原因時(shí)第一個(gè)rejected的promise結(jié)果。

例子

先定義兩個(gè)函數(shù),模擬異步請求。
func_1在2秒之后狀態(tài)變?yōu)?code>resolved,func_2在3秒之后狀態(tài)變?yōu)?code>resolved。
當(dāng)兩個(gè)函數(shù)都變?yōu)?code>resolved之后,Promise.all()的實(shí)例回調(diào)完成。

function func_1 () {
    return new Promise(function (resolve, reject) {
        setTimeout(function() {
            console.log('func_1 end')
            resolve()
        }, 2000)
    })
}
function func_2 () {
    return new Promise(function (resolve, reject) {
        setTimeout(function() {
            console.log('func_2 end')
            resolve()
        }, 3000)
    })
}
Promise.all([func_1(), func_2()])
    .then(() => {
        console.log('all end')
    })

打印順序如下:


打印順序.png

2. Promise.race()

Promise.race(iterable) 。這個(gè)實(shí)例在iterable參數(shù)內(nèi)的只要有一個(gè)Promise對象狀態(tài)變?yōu)榻鉀Q或拒絕,返回的 promise就會(huì)解決或拒絕。

function func_1 () {
    return new Promise(function (resolve, reject) {
        setTimeout(function() {
            console.log('func_1 end')
            resolve()
        }, 2000)
    })
}
function func_2 () {
    return new Promise(function (resolve, reject) {
        setTimeout(function() {
            console.log('func_2 end')
            resolve()
        }, 3000)
    })
}
Promise.race([func_1(), func_2()])
    .then(() => {
        console.log('end')
    })

打印順序如下:


Promise.race打印順序.png

end

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • title: promise總結(jié) 總結(jié)在前 前言 下文類似 Promise#then、Promise#resolv...
    JyLie閱讀 12,417評論 1 21
  • Promise 對象 Promise 的含義 Promise 是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函...
    neromous閱讀 8,834評論 1 56
  • 目錄:Promise 的含義基本用法Promise.prototype.then()Promise.prototy...
    BluesCurry閱讀 1,563評論 0 8
  • Promise含義 Promise是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更強(qiáng)大。所謂Pr...
    oWSQo閱讀 1,133評論 0 4
  • 一個(gè)新的平凡的小草誕生了,它默默奉獻(xiàn)給了你我他。在春天里,它在地上消除我們的疲勞。帶給我們一絲溫暖。 ...
    國服第198名沙迪閱讀 372評論 1 1

友情鏈接更多精彩內(nèi)容