一进来 我们开始执行 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 运行成功了
运行结束
这里还没有进行异步的处理