随便写一个promise

function myPromise(fn){
    this.state = 'Pending'
    this.value
    this.resolve = function(){
        if(this.state != 'Pending'){
            return
        }
        this.state = 'fulfilled'
        this.value = arguments
    }
    this.reject = function(){
        this.state = 'rejected'
        this.value = arguments
    }
    this.then = this.catch = function(callback1, callback2){
        let callback = (this.state == 'fulfilled' ? callback1 : callback2)
        let result = callback(...this.value)
        return new myPromise((resolve)=>{ resolve(result) })
    }  
    this.finally = function(callback) {
        callback()
    }
    fn(this.resolve.bind(this), this.reject.bind(this))
}

 

posted @ 2022-10-22 20:00  姜小希  阅读(16)  评论(0编辑  收藏  举报