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

相关内容

热门资讯

开挂透视!aa poker辅助... 开挂透视!aa poker辅助包!都是一直都是有辅助神器(有挂猫腻)-哔哩哔哩1、该软件可以轻松地帮...
解密透视!拱趴大菠萝自动计算机... 解密透视!拱趴大菠萝自动计算机器人!一直有辅助神器(有挂功能)-哔哩哔哩1、拱趴大菠萝自动计算机器人...
专业透视!xpoker辅助!本... 专业透视!xpoker辅助!本来存在有辅助软件(有挂讲解)-哔哩哔哩1、完成xpoker辅助有辅助插...
有挂透视!pokerworld... 有挂透视!pokerworld修改器!原来真的有辅助神器(讲解有挂)-哔哩哔哩pokerworld修...
揭露透视!pokemmo辅助官... 揭露透视!pokemmo辅助官网!一直一直总是有辅助app(有挂存在)-哔哩哔哩亲,关键说明,pok...
辅助透视!智星德州可以透视吗!... 辅助透视!智星德州可以透视吗!好像存在有辅助软件(有人有挂)-哔哩哔哩1、智星德州可以透视吗脚本辅助...
揭幕透视!悦扑克脚本!竟然真的... 揭幕透视!悦扑克脚本!竟然真的有辅助教程(有挂实锤)-哔哩哔哩1、悦扑克脚本有没有辅助教程、悦扑克脚...
曝光透视!智星德州可以透视吗!... 曝光透视!智星德州可以透视吗!总是真的有辅助脚本(果真有挂)-哔哩哔哩1、这是跨平台的智星德州可以透...
详细透视!werplan免费挂... 详细透视!werplan免费挂下载!原来一直都是有辅助教程(有挂解惑)-哔哩哔哩1、操作简单,无需w...
科普透视!epoker免费透视... 科普透视!epoker免费透视脚本!其实一直总是有辅助脚本(有挂教程)-哔哩哔哩epoker免费透视...