- 含義:非同步程式設計的一種解決方案
- 解釋:簡單說就是一個容器,裡面儲存著某個未來才會結束的事件的結果。(通常是一個非同步操作的結果)從promise物件獲取非同步操作的訊息。
- 特點:
- 物件的狀態不受外界的影響:promise物件代表一個非同步操作,有三種狀態:pending(進行中)fulfilled(已成功)和rejected(已失敗)只有非同步操作的結果可以決定當前是哪一種狀態,其他操作無法改變。
- 一旦狀態改變(從pending變為fulfilled或者rejected),就不會再變,任何時候都可以得到這個結果。
promise物件是一個建構函式,用來生產promise例項。
const promise = new Promise(function(resolve reject){
//...some code
if(非同步成功){
resolve();
}else{
reject(error);
}
})
promise建構函式接受一個函式作為引數,該函式的引數分別是JavaScript引擎提供的兩個函式resolve和reject。
- resolve函式的作用是(將promise物件的狀態從pending變為resolved) 在非同步操作成功時呼叫,並將非同步操作的結果,作為引數傳遞出去。
- reject函式的作用是(將promise物件的狀態從pending變為rejected) 在非同步操作失敗時呼叫,並將非同步操作報出的錯誤,作為引數傳遞出去。
promise例項生成以後,可以用then方法分別指定resolved和rejected狀態的回撥函式。
promise.then(function(value){
//success
},function(error) {
//failure
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結