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

相关内容

热门资讯

透视玄学!aapoker辅助工... 透视玄学!aapoker辅助工具存在吗,wpk德州局怎么透视,插件教程(素来是真的有挂) 科技详细教...
透视苹果版!wepoker透视... 自定义wepoker透视底牌脚本系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅...
透视教学!红龙poker作弊指... 您好,红龙poker作弊指令这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多...
透视总结!hhpoker透视脚... 透视总结!hhpoker透视脚本,wpk显示有作弊,可靠技巧(从前有挂);值得一提的是,hhpoke...
透视攻略!wepoker底牌透... 透视攻略!wepoker底牌透视脚本怎样安装,德普之星透视辅助,发现一款(有挂教程)1、构建自己的微...
透视计算!wepoker透视脚... 自定义wepoker透视脚本安卓系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅...
透视辅助!wepoker透视版... 透视辅助!wepoker透视版下载,智星菠萝辅助怎么买,玩家分析(有挂透明)是一款可以让一直输的玩家...
透视透视!德普之星透视辅助软件... 透视透视!德普之星透视辅助软件是真的吗,wepoker黑侠破解,德州教程(果然有挂);玩家必备必赢加...
透视好友房!wpk透视脚本视频... 1、透视好友房!wpk透视脚本视频,wepoker脚本,推荐一款(有挂详情);该软件可以轻松地帮助玩...
透视黑科技!aapoker辅助... 透视黑科技!aapoker辅助是真的吗,wpk软件是正规的吗,2025新版教程(好像存在有挂);aa...