来源:为什么这段代码在Chrome环境中不符合事件循环机制? - 知乎
以上代码在Chrome环境中输出
1
2
10
但是在NodeJS环境中输出
1
2
3
10
原因:
在目前的Chrome中 setInterval 的最小延迟时间不是0,而是1,即便你写了0,Chrome 也会改成1,而 setTimeout 没有这个限制,所以 setTimeout 回调会先执行,也就执行了 clearInterval,所以不会打印3
紫云飞的回答 https://www.zhihu.com/question/619560968/answer/3188678764