实现一个简易版Promise

95 阅读1分钟
class Promise1 {
  succeed = null
  fail = null
  state = 'pending'
  constructor(fn)){
    fn(this.resolve.bind(this),this.reject.bind(this)
  }
  resolve(result){
   setTimeout(()=>{
     this.state = 'fulfilled'
     this.succeed(result)
   })
  }
  reject(reason){
    setTimeout(()=>{
      this.state = 'rejected'
      this.fail(reason)
    })
  }
  then(succeed,fail) {
    this.succeed = succeed
    this.fail = fail
  }
}