相关疑难解决方法(0)

我是否需要在 ngOnDestroy 中使用 `complete()` takeUntil Subject?

为了避免组件内部的 Observable 内存泄漏,我takeUntil()在订阅 Observable 之前使用了运算符。

我在我的组件中写了这样的东西:

private unsubscribe$ = new Subject();

ngOnInit(): void {
  this.http
    .get('test')
    .pipe(takeUntil(this.unsubscribe$))
    .subscribe((x) => console.log(x));
}

ngOnDestroy(): void {
  this.unsubscribe$.next();
  this.unsubscribe$.complete(); // <--- ??
}
Run Code Online (Sandbox Code Playgroud)

最后我的问题如下:

我需要写this.unsubscribe$.complete();还是next()就够了?

unsubscribe$要由垃圾收集器没有完成被抓住?

请解释是否存在差异或无关紧要。我不希望我的组件出现内存泄漏。

rxjs typescript angular rxjs6

10
推荐指数
1
解决办法
4446
查看次数

Rxjs完成后主题next()()

我有连接的服务Subject()做分页.我正在使用next(newData)传递给主题,这让事情保持活力,现在我需要complete()在每个ajax调用上使用并将其传递给主题.但在做了一个之后,complete()我开始得到错误.

我想知道,如果一旦被触发,我们仍然可以传递Subject可观察量吗?next(newData)completed()

javascript observable observer-pattern rxjs rxjs5

8
推荐指数
1
解决办法
1万
查看次数