对于以下代码:
var fs = require('fs');
fs.watch('target.txt', function(event, fileName){
console.log('Event: ' + event + ', for file: ' + fileName);
});
Console.log('Now watching target.txt');
根据下面的架构图,
1)
fs.watch()
将调用libuv
。 libuv
将启动一个线程来跟踪target.txt
上的change
事件。来自libuv
的结果将经过v8
,再通过NodeJS绑定
以回调形式带有数据的缓冲区返回。2)
libuv
将change
事件添加到事件队列中。当事件循环选择change
事件时,相应的回调在v8
运行时执行。