javascript - Javascript 中的事件循环如何工作?process.nextTick 和 setImmediate 是如何工作的?
问题描述
每当任何“setTimeout”和“setInterval”完成时,事件循环是否将其作为轮询阶段的回调或在该阶段执行该回调?
'process.nextTick()' 回调是否在每个事件循环阶段后被调用?如果没有,回调什么时候发生?
在轮询阶段之后,首先调用哪些回调?“process.nextTick()”或“setImmediate()”(我认为是 nextTick)
欢迎任何理解事件循环的好的参考资料提前谢谢你
解决方案
- 不,直到轮询阶段完成(!)。
- 任何时候在给定阶段调用 process.nextTick() 时,传递给 process.nextTick() 的所有回调都将在事件循环继续之前解决。(取自文档)
- 在轮询阶段后
setImmediate
,回调在检查阶段执行。
参考:https ://nodejs.org/de/docs/guides/event-loop-timers-and-nexttick/
推荐阅读
- javascript - React.js PWA 中桌面和移动设备的分离设计
- c - 前进到指针数组的开头
- reactjs - 映射对象数组的状态时如何重新渲染反应组件
- python - 从 str 列表(从文件)中获取项目并制作成 int?
- c++ - 标准库中的类型可以过度对齐吗?
- c# - 如何将临时类转换为 json?
- swift - 正确的 JSON 结构以过滤数据
- javascript - 变量未在检查值上重新分配
- json - 调用 CreatePolicyVersion 操作时发生错误 (AccessDenied)
- javascript - 传播路径中的事件侦听器如何在 JavaScript 中排队