美文网首页web前端经典面试题
promise和setTimeout执行顺序

promise和setTimeout执行顺序

作者: 全栈弄潮儿 | 来源:发表于2018-08-16 09:36 被阅读5次

    setTimeout(function(){console.log(1)},0);
    new Promise(function(resolve){
    console.log(2)
    for( var i=0 ; i<10000 ; i++ ){
    i==9999 && resolve()
    }
    console.log(3)
    }).then(function(){
    console.log(4)
    });
    console.log(5);
    // 这的问题是,为什么答案是 2 3 5 4 1
    // 而不是 2 3 5 1 4

    最需要 解释的是:then和settimeout执行顺序,即setTimeout(fn, 0)在下一轮“事件循环”开始时执行,Promise.then()在本轮“事件循环”结束时执行。因此then 函数先输出,settimeout后输出。


    更多angular1/2/4/5、ionic1/2/3、react、vue、微信小程序、nodejs等技术文章、视频教程和开源项目,请关注微信公众号——全栈弄潮儿

    微信公众号.png 淘宝天猫内部优惠券.png

    相关文章

      网友评论

        本文标题:promise和setTimeout执行顺序

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