Promise

「我承諾幫你做某件事情,能不能成功還不一定,但是我做完之後會把結果告訴你」的意思

Promise 是一個代表非同步運作的最終狀態的物件 (成功或失敗)

callback的特性:

控制的反轉=>可靠性不足=>無法控制第三方的函式會不會在正確的時間點呼叫以及呼叫正確的次數的callback函式。

Promise的特性:

可靠:Promise 回來的東西是可信任的,一旦回傳就無法被更改。
控制回歸:將執行 callback 的控制權回歸自己的程式。

pending承諾 一直沒有回應

resolve()成功兌現 或 fulfilled 被兌現 =>.then()

reject()失敗 =>.catch() 或.then 的第二個參數

1
2
3
4
5
6
var defer = new Promise(function(resolve, reject) { 
// 如果成功, resolve()
// 如果失敗, reject()
})
.then(laterOn)
.catch(printError);