Javascript 如何检查对可观察对象的活动订阅,以避免数据库中的内存泄漏

Javascript 如何检查对可观察对象的活动订阅,以避免数据库中的内存泄漏,javascript,angular,typescript,observable,rxjs5,Javascript,Angular,Typescript,Observable,Rxjs5,我使用Observable通过http从不同的来源获取信息。我知道这些观测值的订阅是由Angular管理的,所以这部分内存泄漏的风险很低。然而,也许我有点偏执,我正在使用takeUntil()操作符来保证取消对该观察值的订阅。 此外,我还计划在其他任务中大量使用可观测数据,如计数器和事件检测。所以我有点担心活动订阅可能会导致任何问题 我工作的系统包括: Angular CLI: 7.1.4 Node: 10.15.0 Angular: 7.1.4 rxjs 6.3.3 typescript 3.

我使用Observable通过
http
从不同的来源获取信息。我知道这些观测值的订阅是由Angular管理的,所以这部分内存泄漏的风险很低。然而,也许我有点偏执,我正在使用
takeUntil()
操作符来保证取消对该观察值的订阅。 此外,我还计划在其他任务中大量使用可观测数据,如计数器和事件检测。所以我有点担心活动订阅可能会导致任何问题

我工作的系统包括:

Angular CLI: 7.1.4
Node: 10.15.0
Angular: 7.1.4
rxjs 6.3.3
typescript 3.1.6
webpack 4.23.1
Linux rdz1 4.15.0-43-generic #46-Ubuntu SMP Thu Dec 6 14:45:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
组件的代码如下:

import { Component, OnInit, OnDestroy } from '@angular/core';
import { Observable, Subject} from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { QueryInvoiceService } from '../services/query-invoice.service';
import { RegInvoice } from '../classes/reg-invoice';

@Component({
  selector: 'app-detail-notes',
  templateUrl: './detail-notes.component.html',
  styleUrls: ['./detail-notes.component.css']
})
export class DetailNotesComponent implements OnInit {

    private ngUnsubscribe$ = new Subject();

    constructor(private queryInvoiceService: QueryInvoiceService) { }

    ngOnInit() {  }

    getInvoice(): void {
    this.queryInvoiceService.getInvoice(this.refInvNumber, this.refTo)
    .pipe(takeUntil(this.ngUnsubscribe$))
    .subscribe(
      (regInvoices: RegInvoice[]) => {
        this.regInvoices = regInvoices;
        console.log(regInvoices);

      },
      err => console.log(err)
      );
    }

    onClick(): void {
      console.log(this.refInvNumber);
      this.getInvoice();
    }

    ngOnDestroy() {
      this.ngUnsubscribe$.next();
      this.ngUnsubscribe$.complete();
    }
}
在这种情况下,订阅将在单击时激活。数据传输完成后,必须取消订阅。为此,我通过管道使用操作符
takeUntil()

在这种情况下,我想知道如何检查活动订阅是否仍在组件的控制范围之外,以及在什么情况下发生这种情况的风险更大。

这可能会有帮助: