【发布时间】:2023-01-30 04:02:15
【问题描述】:
我需要按顺序执行多个 api 调用并在下一个调用中使用每个调用的响应。看起来有点像这样
from(Object.keys(someObj))
.pipe(
concatMap(key => this.getUsers(key)
)
.subscribe(res => ...)
上面的代码工作正常,但我需要延迟,以便某些组件可以处理 api 调用之间的数据。所以我做了
from(Object.keys(someObj))
.pipe(
concatMap(key => of(this.getUsers(key)).pipe(delay(1000))
)
.subscribe(res => ...)
这将返回一个嵌套的可观察对象。如何在没有嵌套订阅的情况下订阅内部可观察对象?
我试着做
.pipe(
concatMap(key => of(this.getUsers(key)).pipe(delay(1000)),
mergeMap(res => res)
)
但这会导致错误的响应顺序。
【问题讨论】:
-
switchMap取消了之前的 http 调用。它对我不起作用