处理系统信号

以下内容使用了不稳定的特性。更多内容请参考不稳定特性

API文档

可以使用 Deno.signal() 函数来处理系统信号。

  1. for await (const _ of Deno.signal(Deno.Signal.SIGINT)) {
  2. console.log("interrupted!");
  3. }

Deno.signal() 也支持Promise。

  1. await Deno.signal(Deno.Signal.SIGINT);
  2. console.log("interrupted!");

如果想停止监控信号,可以使用信号对象的 dispose() 方法。

  1. const sig = Deno.signal(Deno.Signal.SIGINT);
  2. setTimeout(() => {
  3. sig.dispose();
  4. }, 5000);
  5. for await (const _ of sig) {
  6. console.log("interrupted");
  7. }

上面的for-await循环会在sig.dispose()被调用后5秒退出。