手撸一个Promise(简易版)

98 阅读1分钟
class Promise(){
  queue1 = [] 
  queue2 = []
  constrcutor(fn){
    const resolve= (data)=>{
      setTimeout(()=>{
        for(let i=0;i<this.queue1.length;i++){
          this.queue1[i](data)
        }
      })
    }
    const reject = (reason) => {
        setTimeout(() => {
        for (let i = 0; i < this.queue2.length; i++) {
          this.queue2[i](reason);
        }
      })
    }
    fn(resolve,reject)
  }
  then(s,e){
    this.queue1.push(s)
    this.queue2.push(e)
    return this
  }
}

后面会重写一个完整版的Promise