如何在不杀死我的 CPU 的情况下连续读取 JavaScript 中的文件?
How to continuously read from a file in JavaScript without killing my CPU?
标题几乎说明了一切。我正在为电子应用程序开发插件,我想根据写入本地计算机文件的内容更改某些设置。我尝试了以下方法,但它吃掉了我 CPU.
的一大块不健康的东西
var filepath = "/path/to/file";
const fs = require('fs');
var i = 1;
function readlines(file) {
const data = fs.readFileSync(file, 'UTF-8');
return data;
}
while( i > 0){
signal = readlines(filepath);
if ( signal == "hide" ) {
console.log("hidden");
} else if ( signal == "show" ){
console.log("showing")
}
};
如有任何帮助,我们将不胜感激!
感谢 Daniel A. White 指引我正确的方向!解决方案是使用文件系统监视。新代码如下:
const filepath = "/path/to/file";
const fs = require('fs');
var i = 1;
function readlines(file) {
const data = fs.readFileSync(file, 'UTF-8');
return data;
}
fs.watch (filepath, (event, filename) => {
if (filename && event ==='change') {
signal = readlines(filepath);
if ( signal == "hide" ) {
console.log("hidden");
} else if ( signal == "show" ){
console.log("showing");
}
}
});
标题几乎说明了一切。我正在为电子应用程序开发插件,我想根据写入本地计算机文件的内容更改某些设置。我尝试了以下方法,但它吃掉了我 CPU.
的一大块不健康的东西var filepath = "/path/to/file";
const fs = require('fs');
var i = 1;
function readlines(file) {
const data = fs.readFileSync(file, 'UTF-8');
return data;
}
while( i > 0){
signal = readlines(filepath);
if ( signal == "hide" ) {
console.log("hidden");
} else if ( signal == "show" ){
console.log("showing")
}
};
如有任何帮助,我们将不胜感激!
感谢 Daniel A. White 指引我正确的方向!解决方案是使用文件系统监视。新代码如下:
const filepath = "/path/to/file";
const fs = require('fs');
var i = 1;
function readlines(file) {
const data = fs.readFileSync(file, 'UTF-8');
return data;
}
fs.watch (filepath, (event, filename) => {
if (filename && event ==='change') {
signal = readlines(filepath);
if ( signal == "hide" ) {
console.log("hidden");
} else if ( signal == "show" ){
console.log("showing");
}
}
});