nodejs I/O callback 执行时间点的问题
var fs = require(‘fs’); fs.writeFile(‘output.txt’,‘hello world’, function(err){ console.log(‘file saved!’); }) while(true) {}
在上面的例子里,貌似writeFile的 callback 永远不会执行。 我的问题是:nodejs使用的event loop, 当某个I/O操作执行完毕后,他的callback是立刻执行,还是在某个合适的时间点执行?如果是后者情况,那么我想进一步问下,这个具体点插入时间点是如何决定的呢? 谢谢了!
5 回复
当前的事件阻塞了,所以不执行 自豪地采用 CNodeJS ionic
IO完毕后,会将结果放入一个队列,等待主事件循环,具体何时执行,要看这个事件的顺序和优先级了。
因为你的while还没执行完…
process.nextTick()很好玩的一个函数,如果看懂的话你上面的例子就没有疑问了。
同意三楼的,往深处说,这不是node的问题,这牵涉到js的线程阻塞和事件队里, 简单的说就是js事件处理器要等到正在运行的代码都已结束后才会执行。