小编Sta*_*tan的帖子

Angular RxJS - 取消订阅mergeMap?

遵循此Stack Overflow帖子中描述的最佳实践:Angular RxJS何时应取消订阅订阅,请考虑此Angular组件生命周期钩子:

private ngUnsubscribe: Subject<void> = new Subject();

ngOnInit() {
  this.fireAuth.authState
    .takeUntil(this.ngUnsubscribe)
    .mergeMap((user) => this.todoService.getUserTodos(user.uid))
    .takeUntil(this.ngUnsubscribe)
    .subscribe((todos) => this.userTodoArray = todos);
}

ngOnDestroy() {
  this.ngUnsubscribe.next();
  this.ngUnsubscribe.complete();
}
Run Code Online (Sandbox Code Playgroud)

作为authState()mergeMap()两个返回Observables,我想我应该

  1. 取消订阅它们(如上所示)或
  2. 只能takeUntil()从外部Observable authState()或内部Observable 调用其中一个运算符this.todoService.getUserTodos(user.uid).

哪个方法是正确的,以确保在组件被销毁后取消订阅所有Observable?

observable rxjs angularfire2 angular

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

标签 统计

angular ×1

angularfire2 ×1

observable ×1

rxjs ×1