setTimeout和setImmediate的执行时间问题
来源:16-6 【必考题】event loop在浏览器和nodejs的区别
晴雨稀兮
2020-11-03
老师,第14-6节中,您讲到实现细节中,setTimeout执行时间比setImmediate更早,然而我在官网中看到是这样的,他俩的执行时间分为两种:
(1)如果不在一个I/O中,执行时间不确定,受到进程性能的约束
(2)如果在同一个I/O中,setImmediate总是比setTimeout执行更早
https://nodejs.org/zh-cn/docs/guides/event-loop-timers-and-nexttick/#setimmediate-settimeout
另外,看官方里面6个执行顺序的图示,外部输入数据之后,先进入到(poll)阶段,接着进入到check阶段,然后是关闭回调函数(close callbacks),然后去执行定时器(timers),然后待定回调(pending callbacks), 最后达到空闲的阶段。
请问这个怎么理解呢?
写回答
1回答
-
双越
2020-11-03
这张图太过于细节,涉及到了 nodejs 内部实现。
本课程讲的是 nodejs 的应用和 API 层面,不会涉及内部原理。
所以,这张图就辅助我们去理解 nodejs 异步,就行了。不建议你继续深究 nodejs 原理。
即便是你想去深入学习 nodejs 的原理源码和实现,那也得先把操作系统、编译器、C++ 这些基础知识学完再说。
042021-06-23
相似问题