const pending = 'pending';
const resolved = 'resolved';
const rejected = 'rejected';
// 對於不太經常更改的變數 定於為常量
function mypromise(fn)
}function reject(value)
}trycatch(e)
}mypromise.prototype = ;
if(this.state === pending)
if(this.state === resolved)
if(this.state === rejected)
}}//呼叫 參考eventloop 執行機制
new mypromise((resolve,reject) => else
},2000)
})// promise.then是微任務 但在這裡手動實現 是乙個同步任務 這裡會將處理函式壓入 reject 和resolve 狀態陣列中
.then( ok => )
簡單promise實現原理
promise可以有三種狀態,分別是pedding fulfilled rejected pending promise物件例項建立時候的初始狀態 fulfilled 可以理解為成功的狀態 rejected可以理解為失敗的狀態 構造乙個promise例項需要給promise建構函式傳入乙個函式。傳入...
Promise原理 簡單實現
參考 個人認為原博的實現有點問題 在next函式的實現上,會導致無限的呼叫 看看一般promise的用法 promise new promise function resolve,reject then function val functioin err then function val fun...
Promise原理與實現
var promise function if this instanceof promise return new promise resolver var self this 儲存this self.callbacks 儲存onresolve和onreject函式集合 self.status p...