2022-02-06 promise

promise

Promise 是異步編程的一種解決方案聊疲,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更合理且更強(qiáng)大竣况。它最早由社區(qū)提出并實(shí)現(xiàn)坯沪,ES6將其寫進(jìn)了語(yǔ)言標(biāo)準(zhǔn),統(tǒng)一了用法扛芽,并原生提供了Promise對(duì)象骂蓖。

  • 含義: Promise是異步編程的一種解決方案,
  • 優(yōu)點(diǎn): 相比傳統(tǒng)回調(diào)函數(shù)和事件更加合理和優(yōu)雅川尖,Promise是鏈?zhǔn)骄幊蹋ê竺鏁?huì)詳細(xì)講述)登下,有效的解決了令人頭痛的回調(diào)地獄問題,Promise的結(jié)果有成功和失敗兩種狀態(tài)叮喳,只有異步操作的結(jié)果被芳,可以決定當(dāng)前是哪一種狀態(tài),外界的任何操作都無(wú)法改變這個(gè)狀態(tài)
  • 基本用法:
    我們用Promise的時(shí)候一般是包在一個(gè)函數(shù)中馍悟,在需要的時(shí)候去運(yùn)行這個(gè)函數(shù)畔濒,如:
function p1(){
  return new promise((resolve,reject)=>{
  // 一些邏輯代碼
  if(true){ 
      resolve()
  }else{
      reject();
  }
})
} 
// then 是一個(gè)函數(shù)。有兩個(gè)參數(shù)赋朦,第一個(gè)參數(shù)就是接收resolve返回的數(shù)據(jù)篓冲。第二個(gè)參數(shù)接收reject返回的數(shù)據(jù)李破。
p1().then((data)=>{
    // 接收resolve 返回的數(shù)據(jù)
},(data)=>{
    // 接收reject的返回的數(shù)據(jù)
});
// catch  // 接收reject傳來(lái)的數(shù)據(jù)或者捕捉到then()中的運(yùn)行報(bào)錯(cuò)時(shí),做些什么
p1().catch(()=>{
  
})
// 不管什么狀態(tài)都會(huì)執(zhí)行到這
p.finally(()=>{

})

常用API

  1. resolve 返回異步操作成功的結(jié)果
  2. reject 返回異步操作失敗的結(jié)果
  3. then 執(zhí)行Promise狀態(tài)是成功的操作
  4. catch 執(zhí)行Promise狀態(tài)是失敗的操作
  5. finally 不管Promise狀態(tài)是成功或失敗都執(zhí)行的操作

Promise.all
Promise.all方法用于將多個(gè) Promise 實(shí)例壹将,包裝成一個(gè)新的 Promise 實(shí)例嗤攻。

function p1(){
  return new Promise((resolve)=>{
   console.log("打印p1");
    resolve("p1");
  })
}
function p2(){
  return new Promise((resolve)=>{
   console.log("打印p2");
    resolve("p2");
  })
}
 function p3(){
  return new Promise((resolve)=>{
   console.log("打印p3");
    resolve("p3");
  })
}

const p = Promise.all([p1(), p2(), p3()]).then((datas){
    console.log(data);
})

//打印p1
//打印p2
//打印p3
//["p1", "p2", "p3"]
p的狀態(tài)由p1、p2诽俯、p3決定妇菱,分成兩種情況。
(1)只有p1暴区、p2闯团、p3的狀態(tài)都變成fulfilled,p的狀態(tài)才會(huì)變成fulfilled仙粱,此時(shí)p1房交、p2、p3的返回值組成一個(gè)數(shù)組伐割,傳遞給p的回調(diào)函數(shù)候味。
(2)只要p1、p2隔心、p3之中有一個(gè)被rejected白群,p的狀態(tài)就變成rejected,此時(shí)第一個(gè)被reject的實(shí)例的返回值硬霍,會(huì)傳遞給p的回調(diào)函數(shù)帜慢。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市唯卖,隨后出現(xiàn)的幾起案子粱玲,更是在濱河造成了極大的恐慌,老刑警劉巖耐床,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件密幔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡撩轰,警方通過(guò)查閱死者的電腦和手機(jī)胯甩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)堪嫂,“玉大人偎箫,你說(shuō)我怎么就攤上這事〗源” “怎么了淹办?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)恶复。 經(jīng)常有香客問我怜森,道長(zhǎng)速挑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任副硅,我火速辦了婚禮姥宝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘恐疲。我一直安慰自己腊满,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布培己。 她就那樣靜靜地躺著碳蛋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪省咨。 梳的紋絲不亂的頭發(fā)上肃弟,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音零蓉,去河邊找鬼愕乎。 笑死,一個(gè)胖子當(dāng)著我的面吹牛壁公,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绅项,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼紊册,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了快耿?” 一聲冷哼從身側(cè)響起囊陡,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掀亥,沒想到半個(gè)月后撞反,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡搪花,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年遏片,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撮竿。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吮便,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出幢踏,到底是詐尸還是另有隱情髓需,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布房蝉,位于F島的核電站僚匆,受9級(jí)特大地震影響微渠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜咧擂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一逞盆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧屋确,春花似錦纳击、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至刨啸,卻和暖如春堡赔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背设联。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工善已, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人离例。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓换团,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親宫蛆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子艘包,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

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