ES6——Promise 物件

xuanxuanQueen發表於2019-09-13
  1. 含義:非同步程式設計的一種解決方案
  2. 解釋:簡單說就是一個容器,裡面儲存著某個未來才會結束的事件的結果。(通常是一個非同步操作的結果)從promise物件獲取非同步操作的訊息。
  3. 特點:
    1. 物件的狀態不受外界的影響:promise物件代表一個非同步操作,有三種狀態:pending(進行中)fulfilled(已成功)和rejected(已失敗)只有非同步操作的結果可以決定當前是哪一種狀態,其他操作無法改變。
    2. 一旦狀態改變(從pending變為fulfilled或者rejected),就不會再變,任何時候都可以得到這個結果。

promise物件是一個建構函式,用來生產promise例項。

const promise = new Promise(function(resolve reject){
    //...some code
    if(非同步成功){
        resolve();
    }else{
        reject(error);
    }
})

promise建構函式接受一個函式作為引數,該函式的引數分別是JavaScript引擎提供的兩個函式resolve和reject。

  1. resolve函式的作用是(將promise物件的狀態從pending變為resolved) 在非同步操作成功時呼叫,並將非同步操作的結果,作為引數傳遞出去。
  2. reject函式的作用是(將promise物件的狀態從pending變為rejected) 在非同步操作失敗時呼叫,並將非同步操作報出的錯誤,作為引數傳遞出去。

promise例項生成以後,可以用then方法分別指定resolved和rejected狀態的回撥函式。

promise.then(function(value){
    //success
},function(error) {
    //failure
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章