// promise.js
const
pending
='pending'
;const
fullfilled
='fullfilled'
const
rejected
='rejected'
function
promise
(excutor)
}//如果為pending,就轉化為失敗態
function
reject
(reason)
}try
catch
(e)}
promise.prototype.
then
=function
(onfullied,onrejected)
onfullied=
typeof
(onfullied)
=='function'
?onfullied:value=>value
onrejected=
typeof
(onrejected)
=='function'
?onrejected:reason=>
//以下兩種是,new promise之後,執行同步**
if(self.status==
fullfilled)if
(self.status==
rejected
)//最初將onresolvedcallbacks,onrejectedcallbacks填充函式,解決在new promise裡面使用非同步函式resolve,此時呼叫then還沒有
//開始執行,需要將resolve(value),reject(value)儲存到陣列裡面,等到狀態改變為fullfilled或者rejected時,迴圈陣列,呼叫陣列
//裡面每乙個函式
if(self.status==
pending)}
module.exports=promise
let mypromise =
require
('./promise.js');
let p1=
newmypromise
(function
(resolve,reject)
else})
})p1.then
(function
(data)
,function
(err)
)
關於promise(持續更新)
promise應該是比較高階的 書寫,避免了層層巢狀的 函式,書寫 更優雅。promise要點 1 三種狀態 pending 進行中 resolved 已完成,又稱 fulfilled 和 rejected 已失敗 2 呼叫方法then 成功執行,失敗執行 與 catch 失敗執行 互斥 3 連續的...
自己實現Promise
class mypromise 0 resolve obj reject obj then func,errfunc function fff resolve,reject test var m new mypromise fff var num 1 m.then obj obj console.l...
自己實現Promise
new mypromise resolve,reject then result 最基本的promise 沒有數顯then鏈 class mypromise 為了保證執行resolve reject的時候,已經通過then把需要執行的方法弄好了,我們判斷處理 沒有方法的時候,我們讓改變狀態的操作延遲...