【问题标题】:How to unsubscribe from valueChanges when using concatMap?使用 concatMap 时如何取消订阅 valueChanges?
【发布时间】:2019-03-01 14:31:19
【问题描述】:

我正在阅读 an article 关于 rxjs concatMap 运算符的信息。这个人构建了一个自动保存表单,即,每当用户键入一个字母时,数据就会使用 http 请求进行保存

this.subscription = this.form.valueChanges
      .pipe(concatMap(formValue => this.http.put(`/api/course/${courseId}`, formValue)))
      .subscribe(saveResult =>  ... handle successful save ...);

我希望能够从 valueChanges Observable 中取消订阅 ngOnDestroy(),但 this.subscription 订阅指的是 http observable。那么如何取消订阅valueChanges

【问题讨论】:

标签: angular rxjs


【解决方案1】:

在您的 ngOnDestroy 函数中,只需使用您对订阅的引用。当您创建 observable 时,它​​会返回一个订阅对象,该对象公开了 unsubscribe() 方法。

ngOnDestroy{
this.subscription.unsubscribe();
}

【讨论】:

    猜你喜欢
    • 2023-01-04
    • 2017-05-12
    • 2018-04-26
    • 2021-07-22
    • 2019-05-25
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    相关资源
    最近更新 更多