AsyncPipe在Eventsource关闭后仍显示加载模板。
创始人
2024-09-21 08:30:13
0

一种解决方法是使用RxJS的takeUntil操作符,在EventSource关闭时取消订阅流。以下是一个示例:

import { Injectable } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';

@Injectable()
export class MyService {
  private destroy$: Subject = new Subject();

  constructor() {}

  getData(): Observable {
    return new Observable(observer => {
      const eventSource = new EventSource('http://localhost:8080/api/data');
      eventSource.onmessage = event => {
        observer.next(event.data);
      };
      eventSource.onerror = error => {
        observer.error(error);
      };
      return () => {
        console.log('Closing EventSource...');
        eventSource.close();
      };
    }).pipe(
      takeUntil(this.destroy$)
    );
  }

  ngOnDestroy() {
    this.destroy$.next(true);
    this.destroy$.unsubscribe();
  }
}

在上面的代码中,我们使用了一个Subject来跟踪组件或服务的销毁。我们使用takeUntil操作符来在销毁时取消订阅流。在这个例子中,我们展示了如何使用Observable来订阅EventSource对象,然后在组件或服务的ngOnDestroy方法中调用destroy$的next和unsubscribe方法来销毁这个对象。这样就可以避免Async Pipe在EventSource关闭后仍然显示加载模板的问题。

相关内容

热门资讯

2分钟了解!闲逸游戏游透视吗!... 2分钟了解!闲逸游戏游透视吗!确实是真的有辅助神器(有挂头条)-哔哩哔哩1、闲逸游戏游透视吗免费脚本...
第九分钟了解!打两圈软件辅助器... 您好,打两圈软件辅助器下载这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054】很...
9分钟了解!中至余干马甲怎么开... 9分钟了解!中至余干马甲怎么开挂!好像真的是有辅助脚本(有挂分享)-哔哩哔哩1、下载好中至余干马甲怎...
两分钟了解!边锋老友怎么开挂!... 两分钟了解!边锋老友怎么开挂!一贯是真的有辅助工具(有挂方法)-哔哩哔哩运边锋老友怎么开挂辅助工具,...
两分钟了解!聚友联盟!确实真的... 两分钟了解!聚友联盟!确实真的是有辅助方法(真实有挂)-哔哩哔哩1、进入游戏-大厅左侧-新手福利-激...
四分钟了解!优优乐破解!都是有... 四分钟了解!优优乐破解!都是有辅助攻略(有挂工具)-哔哩哔哩运优优乐破解辅助工具,进入游戏界面。进入...
第十分钟了解!海螺众娱脚本!好... 第十分钟了解!海螺众娱脚本!好像一直都是有辅助脚本(有挂辅助)-哔哩哔哩1、完成海螺众娱脚本有辅助插...
5分钟了解!纳祥游戏脚本!一直... 5分钟了解!纳祥游戏脚本!一直真的是有辅助教程(有挂详情)-哔哩哔哩1、该软件可以轻松地帮助玩家将纳...
九分钟了解!游戏茶苑辅助软件!... 九分钟了解!游戏茶苑辅助软件!切实有辅助app(有挂头条)-哔哩哔哩1、实时游戏茶苑辅助软件透视辅助...
六分钟了解!免费闲逸辅助器免费... 六分钟了解!免费闲逸辅助器免费!本来是真的有辅助方法(有挂技巧)-哔哩哔哩免费闲逸辅助器免费能透视中...