A little about Promise
使用時機¶
當前端同時有數件非同步的工作,且每一件都依賴前一件的結果時,如果使用 CallBack 往往導致結構複雜且不易維護 (也就是所謂的 Callback Hell):
asyncA(function(dataA) {
asyncB(dataA, function(dataB) {
asyncC(dataB, function() {
...
})
})
});
因此,我們需要一個機制來簡化上述的結構,並提供一個統一處理錯誤的方法。
簡介¶
一個 Promise 物件有三種狀態 pending , fullfilled , rejected:首先,物件為 pending 狀態,根據執行情形可能會轉變為 fullfilled 或 rejected 兩種狀態;當物件轉換為 fullfilled 或 rejected 狀態後,這個 Promise 必定不會轉變為其他狀態,且有個不能更動的狀態值。