我有一个单页的Web应用程序,并且在主要组件的ngOnInit()
函数中,它使用loopDoSomething()
调用递归的函数setTimeout
,如下所示:
ngOnInit(): void {
// Some operations
this.loopDoSomething();
}
loopDoSomething() {
// Some operations
setTimeout(this.loopDoSomething.bind(this), 1500);
}
我应该在
loopDoSomething
中添加停止条件还是足够?基本上,我要问的是关闭页面是否会自动停止运行
loopDoSomething()
的进程,还是应该在ngOnDestroy()
函数中手动处理它? 最佳答案
浏览器本身是Javascript代码的编译器,当您打开选项卡时,它将创建html文档的DOM(文档对象模型)和称为window的全局对象。
当您关闭浏览器时,所有这些当然都会被破坏,因为浏览器本身就是主机,而主机已消失。