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++ 这些基础知识学完再说。

0
4
慕丝4078674
回复
双越
老师,课程的图片和官网的图片对应起来理解好像不一样诶
2021-06-23
共4条回复

Node.js+Express+Koa2+Nest.js 开发服务端

从入门到实战,一站式掌握 Node.js+Express+Koa2

4051 学习 · 2006 问题

查看课程