博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
手写Promise自定义封装 then 函数
阅读量:734 次
发布时间:2019-03-22

本文共 1065 字,大约阅读时间需要 3 分钟。

Promise 自定义封装 then 函数

我们现在发现,then方法中压根就没有输出内容;是因为我们对then函数没有进行封装;所以现在我们需要对then函数进行一次封装了怎么封装了???????????、

31 自定义封装 then 方法执行回调

function Promise(executor){    const self=this;    function resolve(data){        // 如果状态发生改变就直接返回(为了让Promise的状态只发生一次改变);        if( self.PromiseStatus!=='pending') return        self.PromiseStatus='resolved';        self.PromiseValue=data;    }    // 同样声明成为一个函数;修改状态    function reject(err){        // 如果状态发生改变就直接返回(为了让Promise的状态只发生一次改变);        if( self.PromiseStatus!=='pending') return        self.PromiseStatus='rejected';        self.PromiseValue=err;    }    this.PromiseStatus ='pending' ;    this.PromiseValue =null;    // 对异常进行处理;使用try catch    try{        executor(resolve,reject);    }catch(err){        reject(err);    }}// 自定义封装then方法执行回调Promise.prototype.then=function(onResolve,onReject){    //下面的this是指向实例对象p的哈;    //{PromiseStatus:"resolved"PromiseValue:"ok"}    if(this.PromiseStatus==='resolved'){        onResolve(this.PromiseValue)    }    if(this.PromiseStatus==='rejected'){        onReject(this.PromiseValue)    }}

转载地址:http://udzwk.baihongyu.com/

你可能感兴趣的文章