promise

new Promise(
  function (resolve, reject) {
    // 一段耗時(shí)的異步操作
    resolve('成功') // 數(shù)據(jù)處理完成
    // reject('失敗') // 數(shù)據(jù)處理出錯(cuò)
  }
).then(
  (res) => {console.log(res)},  // 成功
  (err) => {console.log(err)} // 失敗
)

resolve作用是,將Promise對(duì)象的狀態(tài)從“未完成”變?yōu)椤俺晒Α保磸?pending 變?yōu)?resolved),在異步操作成功時(shí)調(diào)用,并將異步操作的結(jié)果,作為參數(shù)傳遞出去;
reject作用是,將Promise對(duì)象的狀態(tài)從“未完成”變?yōu)椤笆 保磸?pending 變?yōu)?rejected),在異步操作失敗時(shí)調(diào)用,并將異步操作報(bào)出的錯(cuò)誤,作為參數(shù)傳遞出去。

promise有三個(gè)狀態(tài):

1、pending[待定]初始狀態(tài)
2、fulfilled[實(shí)現(xiàn)]操作成功
3、rejected[被否決]操作失敗
當(dāng)promise狀態(tài)發(fā)生改變,就會(huì)觸發(fā)then()里的響應(yīng)函數(shù)處理后續(xù)步驟;
promise狀態(tài)一經(jīng)改變,不會(huì)再變。
Promise對(duì)象的狀態(tài)改變,只有兩種可能:
從pending變?yōu)閒ulfilled
從pending變?yōu)閞ejected。
這兩種情況只要發(fā)生,狀態(tài)就凝固了,不會(huì)再變了。

假如在.then()的函數(shù)里面不返回新的promise,會(huì)怎樣?

.then()
1、接收兩個(gè)函數(shù)作為參數(shù),分別代表fulfilled(成功)和rejected(失?。?br> 2、.then()返回一個(gè)新的Promise實(shí)例,所以它可以鏈?zhǔn)秸{(diào)用
3、當(dāng)前面的Promise狀態(tài)改變時(shí),.then()根據(jù)其最終狀態(tài),選擇特定的狀態(tài)響應(yīng)函數(shù)執(zhí)行
4、狀態(tài)響應(yīng)函數(shù)可以返回新的promise,或其他值,不返回值也可以我們可以認(rèn)為它返回了一個(gè)null;
5、如果返回新的promise,那么下一級(jí).then()會(huì)在新的promise狀態(tài)改變之后執(zhí)行
6、如果返回其他任何值,則會(huì)立即執(zhí)行下一級(jí).then()

原文 http://www.itdecent.cn/p/1b63a13c2701

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

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

  • 本文轉(zhuǎn)載至http://www.itdecent.cn/p/1b63a13c2701 promise是什么? 1...
    莫名其妙的名字閱讀 142評(píng)論 0 0
  • promise是什么? 1、主要用于異步計(jì)算 2、可以將異步操作隊(duì)列化,按照期望的順序執(zhí)行,返回符合預(yù)期的結(jié)果 3...
    Koreyoshi丶閱讀 251評(píng)論 0 1
  • promise是什么? 1、主要用于異步計(jì)算2、可以將異步操作隊(duì)列化,按照期望的順序執(zhí)行,返回符合預(yù)期的結(jié)果3、可...
    王云飛_小四_wyunfei閱讀 572,713評(píng)論 30 374
  • promise是什么? 1、主要用于異步計(jì)算 2、可以將異步操作隊(duì)列化,按照期望的順序執(zhí)行,返回符合預(yù)期的結(jié)果 3...
    師妹不叫思妹閱讀 876評(píng)論 0 0
  • 一、Promise概述 1、為什么引入Promise 在日常開(kāi)發(fā)中,異步操作是很常見(jiàn)的情況,比如發(fā)起網(wǎng)絡(luò)請(qǐng)求后,處...
    天賜129閱讀 1,511評(píng)論 0 1

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