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

相关内容

热门资讯

黑科技挂(微扑克模拟器)外挂透... 黑科技挂(微扑克模拟器)外挂透视辅助教程(透视)必赢教程(好像有挂);微扑克模拟器辅助器中分为三种模...
黑科技辅助(德州wpk)外挂透... 黑科技辅助(德州wpk)外挂透视辅助助手(透视)力荐教程(总是是有挂)1、很好的工具软件,可以解锁游...
黑科技代打(wepOke)黑科... 黑科技代打(wepOke)黑科技透明挂辅助器(透视)新2025教程(总是真的是有挂)1、玩家可以在w...
黑科技神器(微扑克俱乐部)外挂... 黑科技神器(微扑克俱乐部)外挂透视辅助下载(透视)透牌教程(都是是有挂)亲,关键说明,微扑克俱乐部赛...
黑科技好友房(菠萝德州)外挂辅... 黑科技好友房(菠萝德州)外挂辅助下载(透视)教你教程(切实有挂);1.菠萝德州 ai辅助创建新账号,...
黑科技科技(WEPOke)黑科... 黑科技科技(WEPOke)黑科技透明挂辅助助手(透视)规律教程(真是有挂);1、进入游戏-大厅左侧-...
黑科技线上(德州)外挂辅助助手... 黑科技线上(德州)外挂辅助助手(透视)必胜教程(切实真的有挂)小薇(透视辅助)致您一封信;亲爱德州玩...
黑科技神器(德州wpk德州)外... 黑科技神器(德州wpk德州)外挂透视辅助神器(透视)扑克教程(本来有挂)1、任何德州wpk德州ai辅...
黑科技苹果版(wepoker)... 黑科技苹果版(wepoker)黑科技透明挂辅助下载(透视)扑克教程(其实是真的有挂)1、wepoke...
黑科技科技(wEPOKE)黑科... 黑科技科技(wEPOKE)黑科技透明挂辅助器(透视)曝光教程(真是有挂)1、完成wEPOKE透视辅助...