美文网首页
event loop执行顺序汇总

event loop执行顺序汇总

作者: Chaos_YM | 来源:发表于2019-10-18 11:12 被阅读0次

    包含process.nextTick, promise, settimeout, setimmediate

    一,先说结论:

    1,先执行同步代码
    2,执行nextTick
    3,执行当前宏任务的promise.then
    4,setimmediate,settimeout


    二,原理:job queue( 事件队列 )

    eventloop

    为什么promise比process.nexttick慢?
    参考:nexttick

    process.nextTick 永远大于 promise.then,原因其实很简单。。。在Node中,_tickCallback在每一次执行完TaskQueue中的一个任务后被调用,而这个_tickCallback中实质上干了两件事:
    1.nextTickQueue中所有任务执行掉(长度最大1e4,Node版本v6.9.1)
    2.第一步执行完后执行_runMicrotasks函数,执行microtask中的部分(promise.then注册的回调)
    所以很明显 process.nextTick > promise.then

    相关文章

      网友评论

          本文标题:event loop执行顺序汇总

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