码迷,mamicode.com
首页 > 其他好文 > 详细

setImmediate vs. nextTick的区别

时间:2015-09-04 15:49:39      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

参考:http://stackoverflow.com/questions/15349733/setimmediate-vs-nexttick

setImmediate 在已在事件队列的I/O事件触发之后发生,process.nextTick在事件队列之前,并且在当前函数结束之后发生。

因此,如果你打算打断长运行、使用递归的cpu任务,你可以使用setImmediate 而非process.nextTick来插入下一个迭代,否则任何I/O事件回调没有任何机会在迭代过程中被调用。

另外:


传递到process.nextTick的回调函数通常在执行事件流的最后被调用,因此最适合用于尽可能快的同步操作。如果未做检查,这将会消耗掉event loop,阻止I/O发生。setImmediates则按创建顺序插入队列,并且在每一次迭代过程中弹出。这与process.nextTick有很大不同,process.nextTick会在每一次迭代的时候执行process.maxTickDepth队列回调函数。setImmediate在触发队列回调函数之后会让步于event loop,以确保I/O不会被消耗掉。

setImmediate vs. nextTick的区别

标签:

原文地址:http://my.oschina.net/u/214483/blog/501108

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!