setTimeout\ setImmediate \ nextTick 三者的区别问题
来源:3-7 环境 & 调试——process进程

_小_七_
2017-10-02
在事件循环中,消息队列只有当前队列 与 下一个消息队列, 但是老师你说的 nextTick插在当前事件循环的最后,而 setImmediate 在下一个的事件循环的开头,setTimeout(fn,0) 据我所知也是在下一个事件队列的开头,那这里setTimeout(fn,0) 与 setImmediate的优先级到底是谁高呢?还是说 setTimeout 是 在两个事件循环之间?应该没有事件循环之间的说法,据我所知,浏览器的setTimeout(fn,0) 其实与setTimeout(fn,4)无异,浏览器会默认限定最低时间是4ms, 所以我想知道这setTimeout与 setTImmediate的真正区别是啥?
写回答
1回答
-
Samaritan
2017-10-03
首先 setTimeout(fn,0) 在浏览器应该是各 setTimeout(fn, 17) 一样,因为大部分显示器刷新率是 60 HZ
在 Node 端被限制为了 4ms
setTimeoout 和 setInterval 具体区别可以搜一下 Macrotask 和 Microtask
网上很多参考资料,尤其是 stackoverflow 上
理解 js 事件循环二 (macrotask 和 microtask)
00
相似问题