Angular应用程序检查标签页是否关闭,但卡在那里。
创始人
2024-10-30 13:30:48
0

在Angular中,通过HostListener监听window的“beforeunload”事件,可以检查页面是否将被卸载或关闭。但是,如果您使用了RxJS的takeUntil操作符来取消该绑定,则可能会导致代码卡在那里。下面是一个简单的解决方法,您可以在destroy中手动释放subscription来解决这个问题。

import { Component, HostListener, OnDestroy } from '@angular/core';
import { Subject, Subscription } from 'rxjs';
import { takeUntil } from 'rxjs/operators';

@Component({
  selector: 'app-root',
  template: `
    

Example component

` }) export class AppComponent implements OnDestroy { private onDestroy$ = new Subject(); private subscription: Subscription; constructor() { this.subscription = this.checkClosed().pipe( takeUntil(this.onDestroy$) ).subscribe(); } @HostListener('window:beforeunload') checkClose(): void { console.log('Window is about to unload'); } private checkClosed() { return new Observable(observer => { setTimeout(() => { observer.next(); observer.complete(); }, 1000); }); } ngOnDestroy() { this.onDestroy$.next(); this.onDestroy$.complete(); this.subscription.unsubscribe(); } }

在这个例子中,我们手动释放了subscription,并且在组件销毁时使用takeUntil释放subscription和Subject。这就可以避免卡住的问题。

相关内容

热门资讯

最新技巧!湖北休闲辅助,卡五星... 最新技巧!湖北休闲辅助,卡五星辅助神器,详细教程(确实有挂)1、下载好卡五星辅助神器透视辅助下载之后...
今天下午!wejoker私人辅... 今天下午!wejoker私人辅助软件,德扑之星辅助工具如何打开,总是真的是有挂(有挂细节)1、下载好...
最新技巧!钱塘十三水透视,微乐... 最新技巧!钱塘十三水透视,微乐小程序辅助教程,详细脚本(有挂功能)微乐小程序辅助教程是不是有人用挂微...
此事引发网友热议!hhpoke... 此事引发网友热议!hhpoker外挂靠谱吗,德扑软件,真是是真的有挂(证实有挂)1、德扑软件公共底牌...
玩家必知教程!牵手跑得软件,打... 玩家必知教程!牵手跑得软件,打哈儿脚本,详细技巧(有挂详细)1、不需要AI权限,帮助你快速的进行牵手...
2026版攻略!哈糖大菠萝挂,... 2026版攻略!哈糖大菠萝挂,德普之星透视辅助软件激活码,其实真的有挂(揭秘有挂)1、2026版攻略...
一起来讨论!微信小程序中至赣牌... 一起来讨论!微信小程序中至赣牌圈辅助,蘑菇云辅助脚本,详细app(有挂辅助)1、进入到微信小程序中至...
黑科技攻略!wepoker辅助... 黑科技攻略!wepoker辅助器怎么弄,德普之星透视软件免费入口官网,总是确实有挂(有挂细节)1、任...
最新技巧!微乐小程序黑科技,湖... 最新技巧!微乐小程序黑科技,湖北逍遥卡五星辅助,详细工具(有挂讲解)1、金币登录送、破产送、升级送、...
出乎意料的是!aapoker怎... 出乎意料的是!aapoker怎么选牌,德普之星透视,原来真的是有挂(有挂秘诀)亲,关键说明,德普之星...