Proce.nextTick 的原理
24-05-24
slbcun
631℃
0
这一讲我除了结合上一讲说的究宏任务和微任务的运行机制外,还将通过一些代码片段来带你研究 Process.nextick 的执行逻辑,帮你把这块知识点重新梳理。在日常开发中,Process.nextick 在浏览器端代码中很少使用,但在 Node.js 开发种却极为常见,所以你要好好掌握。
那么,为了方便你更好地理解本讲的内容,在课程开始前请你先思考:
Process.nextick 和其他微任务方法在一起的时候,执行顺序是怎么样的?
Vue 也有个 nextick,它的逻辑又是什么样的?
带着疑问,我们先来了解一下 Process.nextick。
基本语法
Process.nextick 的语法有两个参数:
process.nextTick(callback[, ...args])
其中,第一个参数是 callback 回调函数,第二个参数是 args 调用 callback 时额外传的参数,是可选参数。
再来看下 Process.nextick 的运行逻辑:
Process.nextick 会将 callback 添加到“next tick queue”;
“next tick queue”会在当前 JavaScript stack 执行完成后,下一次 event loop 开始执行前按照 FIFO 出队;
如果递归调用 Process.nextick 可能会导致一个无限循环,需要去适时终止递归。