Mari kita terokai prinsip pelaksanaan jam modul fs dalam nod,
const fs = require('fs');
var fileName = 'a.txt';
fs.watch(fileName, (function () {
var count = 0;
return function () {
count++;
console.log("文件" + fileName + " 内容刚刚改变。。第" + count + "次");
};
})());
console.log("watching file...");
Bagaimanakah fs melaksanakan pemberitahuan acara sebagai tindak balas kepada perubahan fail? Jika ia adalah dengan memantau perubahan saiz fail, atau sesuatu yang lain?
Berikut ialah beberapa perkara yang dilihat melalui kod sumber nod:
const FSEvent = process.binding('fs_event_wrap').FSEvent;
function FSWatcher() {
EventEmitter.call(this);
var self = this;
this._handle = new FSEvent();
this._handle.owner = this;
this._handle.onchange = function(status, eventType, filename) {
if (status < 0) {
self._handle.close();
const error = !filename ?
errnoException(status, 'Error watching file for changes:') :
errnoException(status,
`Error watching file ${filename} for changes:`);
error.filename = filename;
self.emit('error', error);
} else {
self.emit('change', eventType, filename);
}
};
}
Fs_event_wrap.cc yang berikut pada asasnya dalam bahasa asing.
Jumlah data yang saya pasang dalam docker tidak dapat mengesan pemberitahuan acara
Lihat ini https://github.com/nodejs/nod...
Ayuh, Nak, jawablah, awak tak tahu nak pijak saya, ada lubang di kepala awak?