我正在使用可观察的对象来查询我的数据库。该可观察对象将返回一个数组,其中包含找到的所有匹配对象。我的问题是我想将可观察值与我将从另一个 API 检索的更多详细信息进行映射。
我尝试了 concatMap 但它只让我在初始可观察值中嵌套 1 个可观察值
const usersAPI$: Observable<Users[]> = // something
const assistsAPI$: Observable<Assists[]> = // something
const modifiedAssists$ = assistsAPI$.find().pipe(
concatMap(assists =>
assists.map(assist => usersAPI$.get(assist.userID)
.pipe(
map(user =>
assist = {...assist}, ...{userName: user.userName}
)
)
)
)
);
Run Code Online (Sandbox Code Playgroud)
您可以在 stackblitz 上看到类似的工作示例, https://stackblitz.com/edit/rxjs-concatmap-issue-stackoverflow ,其中“结果”是使用 concatMap 的正确方法,“结果2”是非工作方法我期望的工作方式