JavaScript Promise 實作理解筆記
// 本文撰寫於 2015 年
如何實作JavaScript Promise?
本篇文章是我閱讀了A+ Promise implementing的筆記與心得。因為官方講解其實用語很精煉,所以我決定用我自己的話寫一篇容易看得懂的筆記。有任何錯誤歡迎留言指正。 PS: 我在本篇文章中交替使用resolve與議 決這兩個詞彙。
建立物件內部變數
//Promise內部有三種狀態
var PENDING = 0;
var FULFILLED = 1;
var REJECTED = 2;
function Promise() {
// 一開始的狀態是Pending
var state = PENDING;
// 一旦Promise被resolve,把成功的value或是失敗的error快取起來
var value = null;
// handlers用於儲存 呼叫then或done的後success, failure的handler
var handlers = [];
}