Promise

function Promise(fn) {
    var status = 'pending'

    function resolve() {
        status = 'resolve'
        successArray.forEach(node => { node.apply(undefined, arguments) })
    }
    function reject() {
        status = 'reject'
        failArray.forEach(node => { node.apply(undefined, arguments) })
    }

    let [successArray,failArray] = [[],[]]

    fn.call(undefined,resolve,reject)

    return {
        then: function (successFn,failFn){
            successArray.push(successFn)
            failArray.push(failFn)
            return undefined
        }
    }

}

Promise(function(resolve,reject) { 
    setTimeout(function(){
        resolve('成功')
    },1000)
}).then((res)=>{
    console.log(res)
})
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容