使用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);
}
}
网友评论