如何在 Deno 中取消观看?

How to unwatch in Deno?

有一个 Deno.watch api 来监视文件系统事件:

const watcher = Deno.watchFs("/");
for await (const event of watcher) {
   console.log(">>>> event", event);
   // { kind: "create", paths: [ "/foo.txt" ] }
}

但是在Deno.watch调用之后如何unwatch呢?

您可以拨打watcher.return

const watcher = Deno.watchFs("/your-dir");

setTimeout(() => {
  watcher.return();
}, 2000)

for await (const event of watcher) {
   console.log(">>>> event", event);
   // { kind: "create", paths: [ "/foo.txt" ] }
}

不建议观看整个文件系统/它会花费很多时间来启动。 Deno.watchFs 同步调用 op_fs_events_open。在获取 watcher 之后,操作是异步的。