手写乞丐版的Promise

2020-03-31  本文已影响0人  SkyBlue丶ly

使用es6,class手写promise

class NewPromise {

    constructor(executor) {

            this._resolve=[],this._reject=[];

            let _resolveFun = (val) =>{

                while (this._resolve.length){

                    const callback=this._resolve.shift();

                    callback(val);

                }

            }

            let _rejectFun = (val) =>{

                while (this._reject.length){

                    const callback=this._reject.shift();

                    callback(val);

                }

            }

            executor(_resolveFun,_rejectFun);

    }

    then(resolveFun,rejectFun){

        this._resolve.push(resolveFun);

        this._reject.push(rejectFun);

    }

}

上一篇 下一篇

猜你喜欢

热点阅读