理解Promise (2)
生活随笔
收集整理的這篇文章主要介紹了
理解Promise (2)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一進(jìn)來 我們開始執(zhí)行 executor函數(shù) 傳遞兩個(gè)參數(shù) 再調(diào)用 then 方法 ,then 方法里面有 OnResolve方法,OnReject 方法 在then 方法中,我們一開始的狀態(tài)是pending 然后根據(jù) 狀態(tài)的不同 調(diào)用不同的函數(shù), 在兩個(gè)不同的函數(shù)中 我們 進(jìn)行判斷 因?yàn)闋顟B(tài)一開始都是有 pending = > success 或者 pending =>fail 判斷 時(shí)修改 狀態(tài) 和 顯示值 function Promise(executor) {let self = this;self.value = null;self.reason = null;//設(shè)置默認(rèn)狀態(tài)self.status = 'pending'//成功函數(shù)
function resolve(value) {if(self.status=='pending') {self.status = 'success';// console.log(self.value);self.value = '運(yùn)行成功了'}};//失敗函數(shù)
function reject(reason) {if(self.status == 'pending') {self.status = 'fail';self.reason = '運(yùn)行失敗了'}}//默認(rèn)立即執(zhí)行函數(shù) 傳遞兩個(gè)參數(shù)
executor(resolve,reject);
}
Promise.prototype.then = function(OnResolve,OnReject) {console.log(this.value)if(this.status == 'success') {OnResolve(this.value);}if(this.status =='fail') {OnReject(this.reason);}
};
module.exports= Promise;
//一進(jìn)來 我們開始執(zhí)行 executor函數(shù) 傳遞兩個(gè)參數(shù) 再調(diào)用 then 方法 ,then 方法里面有 OnResolve方法,OnReject 方法
// then 方法中,我們一開始的狀態(tài)是pending 然后根據(jù) 狀態(tài)的不同 調(diào)用不同的函數(shù),
// 在兩個(gè)不同的函數(shù)中 我們 進(jìn)行判斷 因?yàn)闋顟B(tài)一開始都是有 pending = > success 或者 pending =>fail
// 判斷 時(shí)修改 狀態(tài) 和 顯示值
?
運(yùn)行: 開始運(yùn)行了 運(yùn)行成功了 success 運(yùn)行成功了 運(yùn)行結(jié)束這里還沒有進(jìn)行異步的處理
轉(zhuǎn)載于:https://www.cnblogs.com/guangzhou11/p/11299452.html
總結(jié)
以上是生活随笔為你收集整理的理解Promise (2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理解Promise (1)
- 下一篇: 理解Promise (3)