刚学习nodeJS,请问这里打印顺序是什么?能解释一下吗
发布于 7 年前 作者 shileima 2310 次浏览 来自 问答

微信图片_20180418142121.png 这里执行打印的顺序不明白

3 回复

为什么要贴图,能上代码吗?

跑一下不就知道

这个牵扯到Node本身的消息循环模式了,这几个函数的执行Phase不尽相同 先执行的是5–>3–>4–>1–>2 整个循环中setTimeout是第一个TimerPhase执行的,settImmediate是倒数第二个check阶段执行的,但是第一轮循环等于只注册了这两个事件,没有执行,所以他们并没有先执行。 5是立即执行因此第一个会被log,nextTick()和Promise的回调是整个队列中一直在每个Phase之后等待执行的,然后Promise的回调始终在nextTick之后,因此log顺序是3–>4。 这样循环转到第二圈,再执行之前注册好的事件,因此log 1–>2

回到顶部