使用concatMap时如何退订valueChanges?

时间:2019-03-01 14:31:19

标签: angular rxjs

我正在阅读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 ...);

我希望能够在ngOnDestroy()中从valueChanges取消订阅,但是this.subscription订阅是指http可观察。那么如何退订valueChanges

1 个答案:

答案 0 :(得分:1)

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

ngOnDestroy{
this.subscription.unsubscribe();
}