我有一个单页的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的全局对象。

当您关闭浏览器时,所有这些当然都会被破坏,因为浏览器本身就是主机,而主机已消失。

10-08 10:58