美文网首页前端面试
「1分钟--前端08」JS的宏任务和微任务

「1分钟--前端08」JS的宏任务和微任务

作者: 悬笔e绝 | 来源:发表于2018-06-06 21:58 被阅读554次

    1.机制如下:

    注意一点:

    宏任务需要多次事件循环才能执行完,微任务是一次性执行完的;


    2.宏任务macrotask:

    (事件队列中的每一个事件都是一个macrotask)

    优先级:主代码块 > setImmediate > MessageChannel > setTimeout / setInterval

    比如:setImmediate指定的回调函数,总是排在setTimeout前面


    3.微任务包括:

    优先级:process.nextTick > Promise > MutationObserver


    4.举个栗子:

    (1)下面这个代码输出结果是什么?(先不要看下面的答案,自己想一想)

    (2)揭晓答案:

    主程序和和settimeout都是宏任务,两个promise是微任务

    第一个宏任务(主程序)执行完,执行全部的微任务(两个promise),再执行下一个宏任务(settimeout),所以结果为:

    相关文章

      网友评论

        本文标题:「1分钟--前端08」JS的宏任务和微任务

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