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.拱趴大菠萝有辅助工具吗...
透视好牌"wepok... 透视好牌"wepoker透视脚本视频"详细辅助2025新版(先前有挂);支持2-10人实时对战,虚拟...
2024教程!欢乐情怀脚本辅助... 2024教程!欢乐情怀脚本辅助器ios,心悦填大坑辅助视频(详细辅助详细教程)1、欢乐情怀脚本辅助器...
透视中牌率"hh p... 这是一款非常优秀的hh poker插件下载 ia辅助检测软件,能够让你了解到hh poker插件下载...
终于发现!佛手在线大菠萝技巧,... 您好,瓜瓜丰城棋牌双剑作弊这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩...
透视好牌"拱趴大菠萝... 透视好牌"拱趴大菠萝怎么开挂"详细辅助教你攻略(一贯是有挂);1.拱趴大菠萝怎么开挂 ai辅助创建新...
热门推荐!创思维激k透视免费下... 热门推荐!创思维激k透视免费下载,凑一桌春天游戏辅助苹果版(详细辅助解密教程)1、这是跨平台的凑一桌...
辅助透视"wepok... 辅助透视"wepoker黑侠辅助器正版下载"详细辅助扑克教程(都是有挂);最新版2024是一款经典耐...
2024教程!新海贝之城万能辅... 2024教程!新海贝之城万能辅助器,都莱大菠萝辅助(详细辅助必胜教程)您好,新海贝之城万能辅助器,确...
透视透视挂"德扑圈有... 透视透视挂"德扑圈有透视吗"详细辅助安装教程(一直是有挂)关于德扑圈有透视吗机制的,其中提到了后台系...