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。这就可以避免卡住的问题。

相关内容

热门资讯

第一分钟实锤!德州ai辅助软件... 第一分钟实锤!德州ai辅助软件(德州nzt)切实是真的有挂(详细辅助安装教程);1、超多福利:超高返...
第九分钟实锤!德扑之星猫腻(线... 第九分钟实锤!德扑之星猫腻(线上wpk德州)果然存在有挂(详细辅助2025教程)进入游戏-大厅左侧-...
第3分钟实锤!德州ai辅助(来... 第3分钟实锤!德州ai辅助(来玩德州)竟然真的有挂(详细辅助透明教程);在进入德州ai辅助辅助挂后,...
第七分钟实锤!德扑ai智能(德... 第七分钟实锤!德扑ai智能(德州机器人)都是是真的有挂(详细辅助爆料教程)暗藏猫腻,小编详细说明德扑...
第二分钟实锤!德州之星辅助挂(... 第二分钟实锤!德州之星辅助挂(nzt德州)一直是真的有挂(详细辅助插件教程)第二分钟实锤!德州之星辅...
第七分钟实锤!德扑之星猫腻(线... 第七分钟实锤!德扑之星猫腻(线上德州)竟然存在有挂(详细辅助玩家教程)德扑之星猫腻是一种具有地方特色...
第十分钟实锤!德州AI智能辅助... 第十分钟实锤!德州AI智能辅助机器人(德州app)其实是有挂(详细辅助德州论坛)1、德州AI智能辅助...
2分钟实锤!德扑数据软件(云扑... 2分钟实锤!德扑数据软件(云扑克德州)一直是真的有挂(详细辅助系统教程)1、实时德扑数据软件开挂更新...
5分钟实锤!德扑ai智能机器人... 5分钟实锤!德扑ai智能机器人(德扑ai)一直是有挂(详细辅助科技教程);1、德扑ai智能机器人透视...
四分钟实锤!德州ai机器人(德... 四分钟实锤!德州ai机器人(德扑ai)原来真的有挂(详细辅助曝光教程)1、全新机制【德州ai机器人软...