《深入浅出node.js》——setImmediate()与process.nextTick()

来源:互联网 发布:java file.getname 编辑:程序博客网 时间:2024/05/16 01:22

setImmediate()方法与process.nextTick()方法十分类似,都是将回调函数延迟执行。

但是两者之间其实是有细微差别的:

    process.nextTick()中的回调函数执行的优先级要高于setImmediate()。这里的原因在于事件循环对观察者的检查是有先后顺序的,process.nextTick()属于idle观察者,setImmediate()属于check观察者。在每一个轮循环检查中,idle观察者先于I/O观察者,I/O观察者先于check观察者。

    在具体实现上,process.nextTick()的回调函数保存在一个数组中,setImmediate()的结果则是保存在链表中。

    在行为上,process.nextTick()在每轮循环中会将数组中的回调函数全部执行完,而setImmediate()在每轮循环中执行链表中的一个回调函数。

阅读全文
0 0
原创粉丝点击