2019-05-05 eventloop示例代码解析(一)

如下代码执行顺序是什么


2019-05-05 eventloop示例代码解析(一)_第1张图片
image.png

分析:
我们先看3个阶段
timers
poll
check


2019-05-05 eventloop示例代码解析(一)_第2张图片
image.png

这里f1放在check阶段队列,f2放在timers阶段队列,先在poll阶段,发现有事儿做了,所以f1先执行,打印setImmediate1,
2019-05-05 eventloop示例代码解析(一)_第3张图片
image.png

在check阶段,f3放到timers队列里,check阶段完了之后,回到timers阶段,执行f2,打印出setTimeout2,f4放到check阶段,继续执行f3,打印出setTimeout1


2019-05-05 eventloop示例代码解析(一)_第4张图片
image.png

timers执行完了之后,进入poll阶段,发现有事儿做,进入check阶段,执行f4,打印出setImmediate2
所以结果是setImmediate1 setTimeout2 setTimeout1 setImmediate2

你可能感兴趣的:(2019-05-05 eventloop示例代码解析(一))