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
}
}