Deno 程序的生命周期
Deno 支持浏览器兼容的生命周期事件 load 和 unload。可以使用这些事件在程序中提供用于安装(setup)和清理(cleanup)的代码
load事件的侦听器(listener)可以是异步(async)的,将被等待(await)。 ubload事件的监听器需要是同步的。这两项事件都不能被取消。
示例:
// main.ts
import "./imported.ts";
const handler = (e: Event): void => {
console.log(`got ${e.type} event in event handler (main)` );
}
window.addEventListener("load", handler);
window.addEventListener("unload", handler);
window.onload = (e: Event): void => {
console.log(`got ${e.type} event in onload function (main)`);
}
window.onunload = (e: Event): void => {
console.log(`got ${e.type} event in onunload function (main)`);
}
console.log("log from main script")运行结果:
注意:你可以同时使用 window.addEventListener 和 window.onload / window.onunload 来定义事件的处理程序
但是它们之间有一个区别,如上面的运行结果,所有通过 window.addEventListener 添加的侦听器都被运行。 但是 main.ts中定义的 window.onload 和 window.onunload 覆盖了 imported.ts 中定义的处理程序
最后更新于
这有帮助吗?