包含process.nextTick, promise, settimeout, setimmediate
一,先说结论:
1,先执行同步代码
2,执行nextTick
3,执行当前宏任务的promise.then
4,setimmediate,settimeout
二,原理:job queue( 事件队列 )
为什么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
网友评论