我想知道在以下情况下是否必须取消订阅。我使用combineLatest
两个角度可观测值route.params
和创建一个可观测值route.queryParams
。要将它们用作HTTP请求中的参数,我调用switchMap
并返回http请求的可观察值。然后我描述这个可观察的。
现在,我想知道是否必须照顾订阅。通常我不这样做,因为angular的http服务返回的可观察值在发出第一个值后完成。
在我目前的情况下,我不确定,因为原始的observable是通过调用创建的combineLatest
。
// Somewhere within my component.
const subscription = combineLatest(this.route.params, this.route.queryParams).pipe(
switchMap(([params, queryParams]: [Params, Params]) => this.http.get<number>(`query/path/${params.id}/${queryParams.type}`)
).subscribe(data => console.log(data));
是的,您将需要退订。这与您的切换映射无关,但是与您的CombineLatests及其参数有关。
combineLastest
将发出每个可观察者的最新值。两者都会随着路线的变化this.route.params
而this.route.queryParams
不断发出值。因此,您combineLatest
还将继续散发出价值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句