switchMap到Angular HTTP-Request是否需要退订

帕斯卡尔合唱团

我想知道在以下情况下是否必须取消订阅。我使用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.paramsthis.route.queryParams不断发出值。因此,您combineLatest还将继续散发出价值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章