Promise.all和Promise.race

Promise.all

  • 原理

    將多個(gè)Promise實(shí)例包裝成一個(gè)新的Promise實(shí)例荔泳,成功的時(shí)候返回一個(gè)結(jié)果數(shù)組趟径,失敗的時(shí)候返回最先被reject失敗狀態(tài)的值达址。

  • 常見使用場(chǎng)景

    頁面上需要等待兩個(gè)或多個(gè)ajax的數(shù)據(jù)回來以后才正常顯示擂橘,在此之前只顯示loading。

  • 用法

let p1 = new Promise((resolve,reject) => {
    resolve('成功')
})
let p2 = new Promise((resolve,reject) => {
    resolve('success')
})
let p3 = Promise.reject('失敗')
Promise.all([p1,p2]).then((result) => {
    console.log(result) // ['成功','seccess']
}).catch((error) => {
    console.log(error)
})
Promise.all([p1,p3]).then((result) => {
    console.log(result) 
}).catch((error) => {
    console.log(error)//['失敗']
})

??注意:成功時(shí)接收到的數(shù)組的順序是all參數(shù)里的數(shù)組的順序寞埠,即p1的結(jié)果在前屁置,即便p1的結(jié)果比p2的結(jié)果晚獲取到。這帶來了一個(gè)好處畸裳、在前端的數(shù)據(jù)使用中缰犁,偶爾會(huì)遇到發(fā)送多個(gè)請(qǐng)求并根據(jù)請(qǐng)求的順序獲取和使用數(shù)據(jù)的場(chǎng)景,使用Promise.all可以解決這個(gè)問題怖糊。

Promise.race

  • 原理

    有任意一個(gè)成功返回后帅容,就算完成,但是進(jìn)程不會(huì)立即停止伍伤。

  • 常見使用場(chǎng)景

    把異步操作和定時(shí)器放到一起并徘,如果定時(shí)器先觸發(fā),就認(rèn)為超時(shí)扰魂,通知用戶.比如獲取微信地理位置信息麦乞,如果超時(shí)則提醒用戶并且此時(shí)無法獲取地理微信進(jìn)行其他操作。

  • 用法

let p1 = new Promise((resolve,reject) => {
 setTimeout(() => {
 resolve('成功了')
 },2000);
})
let p2 = new Promise((resolve,reject) => {
    setTimeout(() => {
        reject('failed')
    },500)
})

Promise.race([p1,p2]).then((result) => {
    console.log(result)
}).catch((error) => {
    console.log(error);//failed
})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末劝评,一起剝皮案震驚了整個(gè)濱河市姐直,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蒋畜,老刑警劉巖声畏,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異姻成,居然都是意外死亡插龄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門科展,熙熙樓的掌柜王于貴愁眉苦臉地迎上來均牢,“玉大人,你說我怎么就攤上這事才睹∨枪颍” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵琅攘,是天一觀的道長(zhǎng)真椿。 經(jīng)常有香客問我,道長(zhǎng)乎澄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任测摔,我火速辦了婚禮置济,結(jié)果婚禮上解恰,老公的妹妹穿的比我還像新娘。我一直安慰自己浙于,他們只是感情好护盈,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著羞酗,像睡著了一般腐宋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上檀轨,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天胸竞,我揣著相機(jī)與錄音,去河邊找鬼参萄。 笑死卫枝,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的讹挎。 我是一名探鬼主播校赤,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼筒溃!你這毒婦竟也來了马篮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤怜奖,失蹤者是張志新(化名)和其女友劉穎浑测,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烦周,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尽爆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了读慎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漱贱。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖夭委,靈堂內(nèi)的尸體忽然破棺而出幅狮,到底是詐尸還是另有隱情,我是刑警寧澤株灸,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布崇摄,位于F島的核電站,受9級(jí)特大地震影響慌烧,放射性物質(zhì)發(fā)生泄漏逐抑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一屹蚊、第九天 我趴在偏房一處隱蔽的房頂上張望厕氨。 院中可真熱鬧进每,春花似錦、人聲如沸命斧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽国葬。三九已至贤徒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間汇四,已是汗流浹背接奈。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留船殉,地道東北人鲫趁。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像利虫,于是被迫代替她去往敵國(guó)和親挨厚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容