diff options
Diffstat (limited to 'docs/examples/os_signals.md')
-rw-r--r-- | docs/examples/os_signals.md | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/docs/examples/os_signals.md b/docs/examples/os_signals.md new file mode 100644 index 000000000..5f66f3340 --- /dev/null +++ b/docs/examples/os_signals.md @@ -0,0 +1,35 @@ +## Handle OS Signals + +> This program makes use of an unstable Deno feature. Learn more about +> [unstable features](../../runtime/unstable). + +[API Reference](https://deno.land/typedoc/index.html#signal) + +You can use `Deno.signal()` function for handling OS signals. + +``` +for await (const _ of Deno.signal(Deno.Signal.SIGINT)) { + console.log("interrupted!"); +} +``` + +`Deno.signal()` also works as a promise. + +``` +await Deno.signal(Deno.Singal.SIGINT); +console.log("interrupted!"); +``` + +If you want to stop watching the signal, you can use `dispose()` method of the +signal object. + +``` +const sig = Deno.signal(Deno.Signal.SIGINT); +setTimeout(() => { sig.dispose(); }, 5000); + +for await (const _ of sig) { + console.log("interrupted"); +} +``` + +The above for-await loop exits after 5 seconds when sig.dispose() is called. |