相关疑难解决方法(0)

rxjs 7 更新 - 主题 - 预期 1 个参数,但得到 0 个

我将 rxjs 从版本 6.xx 更新到 7.xx,但出现以下错误:

src/app/app.component.ts 中出现错误 (12:19) 需要 1 个参数,但得到 0 个。

当尝试将next空值传递给Subject

destroy$ = new Subject();

constructor() {
  this.destroy$.next(); // <-- Expected 1 arguments, but got 0.
}
Run Code Online (Sandbox Code Playgroud)

错误堆栈闪电战

rxjs typescript angular

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

我是否需要在 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
查看次数

标签 统计

angular ×2

rxjs ×2

typescript ×2

rxjs6 ×1