我正在尝试为项目重新创建fs.watchFile(),但是我对特定主题有些困惑。问题是如何填充该回调函数的参数 curr 和 prev ?
fs.watchFile('message.text', (curr, prev) => {
console.log(`the current mtime is: ${curr.mtime}`);
console.log(`the previous mtime was: ${prev.mtime}`);
});
我检查了节点目录并分析了watchFile()函数的定义,但是发现它仅返回一个stat对象的实例。
答案 0 :(得分:0)
这个答案将有一堆链接到一堆代码,这在StackOverflow中是不希望的,但是我认为在这种情况下这是最好的。
我认为this是您要查找的代码。来自here,在此,侦听器(您的函数)被挂接到stat
变量(即StatWatcher
)上的事件“ change”(在第一个文件linked to。
答案 1 :(得分:0)
在lib/internal/fs/watchers.js中定义的相应StatWatcher实例上发出'change'事件时,将触发回调。 StatWatcher作为watchFile()函数的一部分在lib/fs#line 1349中创建。 StatWatcher的基础实现是用本机代码编写的。
当您要滚动自己的实现时,同时查看在Linux系统上实现监视文件系统事件的inotify package可能会有所帮助。注意,每个“ OS”都有其“文件更改”事件的概念。