美文网首页
手写一个简单的Promise

手写一个简单的Promise

作者: may505 | 来源:发表于2021-02-25 19:29 被阅读0次
    function MayPromise(callback) {
        this.status = "pending"
        this.value = null
        this.successCallback = []
        const resolve = (value) => {
            if (this.status === "pending") {
                this.status = "success"
                this.value = value
                this.successCallback.map(item => item(value))
            }
        }
        const reject = value => {
            if (this.status === "pending") {
                this.status === "reject"
            }
        }
        callback(resolve, reject)
    }
    
    MayPromise.prototype.then = function (callback) {
        if (this.status === "success") {
            callback(this.value)
        } else if (this.status === "pending") {
            this.successCallback.push(callback)
        }
    }
    new MayPromise((resolve) => {
        setTimeout(() => {
            resolve('123456')
        }, 1000)
    }).then(res => console.log('res', res))
    

    相关文章

      网友评论

          本文标题:手写一个简单的Promise

          本文链接:https://www.haomeiwen.com/subject/hxgufltx.html