首页 > 解决方案 > Javascript 中的事件循环如何工作?process.nextTick 和 setImmediate 是如何工作的?

问题描述

  1. 每当任何“setTimeout”和“setInterval”完成时,事件循环是否将其作为轮询阶段的回调或在该阶段执行该回调?

  2. 'process.nextTick()' 回调是否在每个事件循环阶段后被调用?如果没有,回调什么时候发生?

  3. 在轮询阶段之后,首先调用哪些回调?“process.nextTick()”或“setImmediate()”(我认为是 nextTick)

欢迎任何理解事件循环的好的参考资料提前谢谢你

标签: javascriptnode.jssettimeoutsetintervalevent-loop

解决方案


  1. 不,直到轮询阶段完成(!)。
  2. 任何时候在给定阶段调用 process.nextTick() 时,传递给 process.nextTick() 的所有回调都将在事件循环继续之前解决。(取自文档)
  3. 在轮询阶段后setImmediate,回调在检查阶段执行。

参考:https ://nodejs.org/de/docs/guides/event-loop-timers-and-nexttick/


推荐阅读