理解Promise (2)
一进来 我们开始执行 executor函数 传递两个参数 再调用 then 方法 ,then 方法里面有 OnResolve方法,OnReject 方法
在then 方法中,我们一开始的状态是pending 然后根据 状态的不同 调用不同的函数,
在两个不同的函数中 我们 进行判断 因为状态一开始都是有 pending = > success 或者 pending =>fail
判断 时修改 状态 和 显示值
function Promise(executor) { let self = this; self.value = null; self.reason = null; //设置默认状态 self.status = 'pending' //成功函数 function resolve(value) { if(self.status=='pending') { self.status = 'success'; // console.log(self.value); self.value = '运行成功了' } }; //失败函数 function reject(reason) { if(self.status == 'pending') { self.status = 'fail'; self.reason = '运行失败了' } } //默认立即执行函数 传递两个参数 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; //一进来 我们开始执行 executor函数 传递两个参数 再调用 then 方法 ,then 方法里面有 OnResolve方法,OnReject 方法 // then 方法中,我们一开始的状态是pending 然后根据 状态的不同 调用不同的函数, // 在两个不同的函数中 我们 进行判断 因为状态一开始都是有 pending = > success 或者 pending =>fail // 判断 时修改 状态 和 显示值
运行:
开始运行了
运行成功了
success 运行成功了
运行结束
这里还没有进行异步的处理
越努力越幸运
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步