如何避免来自链式 angular 订阅的 HTTP 调用
How to avoid HTTP call from chained angular subscription
我有一种情况,我调用 HTTP 服务来取回数据,然后根据该数据我需要立即进行另一个 HTTP 调用。通常我会 pipe
第一个输出到 switchMap
并完成。现在这是从路由订阅内部完成的,所以我不知道如何摆脱内部调用。
this.route.queryParamMap
.pipe(switchMap(params => someService.get(params))
.subscribe(x => {
// do other things with x
someService.getOtherThing(x.id).subscribe(...)
})
在 get(params)
调用完成之前,我无法调用 getOtherThing(x.id)
。我如何避免从订阅中调用该服务?
this.route.queryParamMap.pipe(
switchMap(params => someService.get(params)),
concatMap((x) => {
// do other things with x
return someService.getOtherThing(x.id)
})
).subscribe((response) => console.log('Your response'));
concatMap
会等待someService.get(params)
完成才能触发someService.getOtherThing(x.id)
我有一种情况,我调用 HTTP 服务来取回数据,然后根据该数据我需要立即进行另一个 HTTP 调用。通常我会 pipe
第一个输出到 switchMap
并完成。现在这是从路由订阅内部完成的,所以我不知道如何摆脱内部调用。
this.route.queryParamMap
.pipe(switchMap(params => someService.get(params))
.subscribe(x => {
// do other things with x
someService.getOtherThing(x.id).subscribe(...)
})
在 get(params)
调用完成之前,我无法调用 getOtherThing(x.id)
。我如何避免从订阅中调用该服务?
this.route.queryParamMap.pipe(
switchMap(params => someService.get(params)),
concatMap((x) => {
// do other things with x
return someService.getOtherThing(x.id)
})
).subscribe((response) => console.log('Your response'));
concatMap
会等待someService.get(params)
完成才能触发someService.getOtherThing(x.id)