Promise系列02:Promise創建

ES6提供了原生的Promise構造函數,用來生成Promise實例。

下面代碼創造了一個Promise實例。

var promise = new Promise(function(resolve, reject) {
  // 異步操作的代碼
  if (/* 異步操作成功 */){
    resolve(value);
  } else {
    reject(error);
  }
});

resolve函數的作用是,將Promise對象的狀態從“未完成”變爲“成功”(即從Pending變爲Resolved),在異步操作成功時調用,並將異步操作的結果,作爲參數傳遞出去;reject函數的作用是,將Promise對象的狀態從“未完成”變爲“失敗”(即從Pending變爲Rejected),在異步操作失敗時調用,並將異步操作報出的錯誤,作爲參數傳遞出去。

Promise實例生成以後,可以用then方法分別指定Resolved狀態和Reject狀態的回調函數。

// then(success, error)
p.then(
  function(value) {
    // success
  }, 
  function(value) {
    // failure
  }
);
發佈了29 篇原創文章 · 獲贊 28 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章