處理作業系統訊號
在 Github 上編輯
您可以使用 `Deno.addSignalListener` 函式監聽作業系統訊號。這可讓您執行諸如在收到 `SIGINT` 訊號時優雅地關閉伺服器等操作。
console.log("Counting seconds...");
let i = 0;
我們隔離訊號處理常式函式,以便稍後可以移除它。
function sigIntHandler() {
console.log("interrupted! your number was", i);
Deno.exit();
}
然後,我們可以監聽 `SIGINT` 訊號,該訊號在使用者按下 Ctrl+C 時傳送。
Deno.addSignalListener("SIGINT", sigIntHandler);
在我們等待訊號時,我們可以執行其他操作,例如計數秒數或啟動伺服器。
const interval = setInterval(() => {
i++;
}, 1000);
而且,在 10 秒後,我們可以退出並移除訊號監聽器。
setTimeout(() => {
clearInterval(interval);
Deno.removeSignalListener("SIGINT", sigIntHandler);
console.log("done! it has been 10 seconds");
}, 10_000);
使用 Deno CLI 在本機執行此範例
deno run https://deno-docs.dev.org.tw/examples/scripts/os_signals.ts