fsPromises.watch(filename[, options])
filename<string> | <Buffer> | <URL>options<string> | <Object>persistent<boolean> 指示进程是否应在监视文件时继续运行。默认值:true。recursive<boolean> 指示是否应监视所有子目录,还是仅监视当前目录。当指定目录时适用,并且仅在支持的平台上有效(参见 注意事项)。默认值:false。encoding<string> 指定用于传递给监听器的文件名的字符编码。默认值:'utf8'。signal<AbortSignal> 一个 <AbortSignal>,用来指示观察者何时应该停止。
- 返回:具有以下属性的 <AsyncIterator> 个对象:
返回一个异步迭代器,用于监视 filename 的变化,其中 filename 可以是文件或目录。
【Returns an async iterator that watches for changes on filename, where filename
is either a file or a directory.】
const { watch } = require('node:fs/promises');
const ac = new AbortController();
const { signal } = ac;
setTimeout(() => ac.abort(), 10000);
(async () => {
try {
const watcher = watch(__filename, { signal });
for await (const event of watcher)
console.log(event);
} catch (err) {
if (err.name === 'AbortError')
return;
throw err;
}
})(); 在大多数平台上,每当目录中出现或消失一个文件名时,都会触发 'rename'。
【On most platforms, 'rename' is emitted whenever a filename appears or
disappears in the directory.】
关于 fs.watch() 的所有 注意事项 也同样适用于 fsPromises.watch()。
【All the caveats for fs.watch() also apply to fsPromises.watch().】