fs.watchFile延迟了nodejs

时间:2017-07-17 02:59:12

标签: node.js file

如果您运行以下脚本,我遇到的问题是脚本不是每1秒更新一次运行,而是每隔3-5秒就不那么频繁。这是node.js的错误还是有办法解决它?

var http = require('http');
var fs = require('fs');
var f = "C:\\Test.txt";
fs.watchFile(f, (curr, prev) => {
  console.log(`the current mtime is: ${curr.mtime} ${prev.mtime}`);
  console.log(String(fs.readFileSync(f)));
});

setInterval(function() {
  fs.writeFileSync('C:\\Test.txt',String(Date.now()));
}, 1000);

2 个答案:

答案 0 :(得分:1)

它在setInterval上正确写入,但fs.watchFile以自己的间隔轮询。您可以使用options参数设置轮询间隔:

fs.watchFile(f, {interval: 1000}, (curr, prev) => {
    ...
}

这应该更像你期望的工作。

答案 1 :(得分:0)

fs.watchFile(f, {interval: 2000}, (curr, prev) => {
  console.log(`the current mtime is: ${curr.mtime} ${prev.mtime}`);
  console.log(String(fs.readFileSync(f)));
});

每2秒检查一次文件,默认显示为5。