Promise 用法解析

Promise 在ES6中可以直接使用:

var promise = new Promise(function(resolve, reject) {
  // 異步操作的代碼

  if (/* 異步操作成功 */){
    resolve(value);
  } else {
    reject(error);
  }
});

Promise構(gòu)造函數(shù)的參數(shù)是一個函數(shù),這個參數(shù)函數(shù)的兩個參resolve和reject也是JavaScript提供,可以認為是固定寫法。

當執(zhí)行成功,Promise對象的狀態(tài)會從未完成(Pending)變?yōu)?code>成功(Resolved),這一步就是resolve函數(shù)所做的事情;反之執(zhí)行reject函數(shù),將Promise對象的狀態(tài)變?yōu)?code>失?。≧ejected),將錯誤作為參數(shù)傳出去。

Promise實例生成后,可以用then方法分別指定Resolved和Rejected狀態(tài)的回調(diào)函數(shù):

promise.then(function(value){
  //成功回調(diào)
  },function(error){
  //失敗回調(diào) 一般使用 console.error(error)
  })

指定多個回調(diào)函數(shù)的時候,依次在后面添加. then()即可,失敗回調(diào)只寫在最后一個.then回調(diào)里。

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

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

  • 00、前言Promise 是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更合理和更強大。它由社區(qū)...
    夜幕小草閱讀 2,217評論 0 12
  • Promiese 簡單說就是一個容器,里面保存著某個未來才會結(jié)束的事件(通常是一個異步操作)的結(jié)果,語法上說,Pr...
    雨飛飛雨閱讀 3,484評論 0 19
  • Promise的含義: ??Promise是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更合理和...
    呼呼哥閱讀 2,262評論 0 16
  • //本文內(nèi)容起初摘抄于 阮一峰 作者的譯文,用于記錄和學習,建議觀者移步于原文 概念: 所謂的Promise,...
    曾經(jīng)過往閱讀 1,315評論 0 7
  • 一個新的地方你會接受或者反抗,時間久了你會習慣,再然后你會不能沒有它,這就是體制化
    Despairrebirth閱讀 191評論 0 0

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