angular - 取消订阅 switchmap 内部 observable,同时保持源 observable 处于活动状态 - Angular / RxJS
问题描述
当输入的值发生变化时,我正在尝试进行 http 调用。像这样的东西:
this.formControl.valueChanges
.pipe(
switchMap(text => this.service.getRequest(text))
).subsscribe()
然后,我还希望能够在某种事件触发时取消订阅内部 observable 并终止请求,但同时保持源 observablethis.formControl.valueChages
处于活动状态。
我怎样才能实现这种行为?
编辑1:
我想我错过了 takeUntil 但我认为我让它工作了:
private _unsub = new Subject<void>();
this.formControl.valueChanges
.pipe(
switchMap(text => this.service.getRequest(text).pipe(takeUntil(this._unsub)))
).subsscribe()
onClick() {
this._unsub.next();
this._unsub.complete();
}
如果我不是正确的方法,请纠正我!