首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NodeJS - setTimeout(fn,0) vs setImmediate(fn)

NodeJS - setTimeout(fn,0) vs setImmediate(fn)
EN

Stack Overflow用户
提问于 2014-06-09 17:25:17
回答 4查看 46.3K关注 0票数 105

这两者之间有什么区别,什么时候我会使用其中一个而不是另一个?

EN

回答 4

Stack Overflow用户

发布于 2017-03-07 19:27:17

一篇很棒的文章介绍了事件循环是如何工作的,并澄清了一些误解。http://voidcanvas.com/setimmediate-vs-nexttick-vs-settimeout/

引用这篇文章:

setImmediate回调在I/O队列回调完成或超时后调用。setImmediate回调放在检查队列中,检查队列在I/O队列之后进行处理。

setTimeout(fn, 0)回调放在定时器队列中,将在I/O回调和检查队列回调之后调用。作为事件循环,在每次迭代中首先处理计时器队列,因此将首先执行哪一个取决于哪个阶段事件循环。

票数 20
EN

Stack Overflow用户

发布于 2014-06-09 18:49:49

总是使用setImmediate,除非你真的确定你需要setTimeout(,0) (但我甚至不能想象,有什么用)。setImmediate回调几乎总是在setTimeout(,0)之前执行,除非在first tick和setImmediate回调中调用。

票数 2
EN

Stack Overflow用户

发布于 2018-04-12 14:35:15

setTimeout(fn,0)可用于防止浏览器在大规模更新时冻结。例如,在websocket.onmessage中,您可能会更改setImmidiate,如果消息源源不断,则在使用html时,浏览器可能会冻结

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24117267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档