Promise 也是 ES6 新加入的標準,它的用處在預留一個我們目前沒有,但之後會有的值,它能保證我們未來會得到一個非同步計算的結果。如果 promise 實現了,我們會得到一個值。如果發生了問題,那我們會得到錯誤的原因。
Promise 最明顯的例子是從伺服器取得資料,使用內建的 Promise
constructor 建立一個 promise 物件,在 constructor 裡傳入二個函式,一個是 promise 實現(fulfilled)時會呼叫的,另一個則是發生問題時會呼叫的。
Promise 建立後會是 pending
狀態,待得到回傳之後,就會視結果而呼叫 resolve
或 reject
二個函式其中之一,而 promise 物件的狀態也會同時變成 resolve
或 reject
,並且不會再改變。
Promise((resolve, reject) => {
if(condition) {
resolve();
} else {
reject();
}
});