• 理解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 运行成功了
    运行结束

    这里还没有进行异步的处理

  • 相关阅读:
    SVN服务器搭建和使用(一)
    Python3.x和Python2.x的区别
    myeclipse启动不了的解决方法
    学习第49天
    学习第48天
    学习第47天
    学习第46天
    学习第45天
    学习第44天
    学习第43天
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/11299452.html
Copyright © 2020-2023  润新知