【发布时间】:2020-02-14 16:49:40
【问题描述】:
我必须对 API 执行 3 个依赖请求。
- 第一个检索用户 ID 的数组。
- 第二个必须遍历用户 ID 的数组,并为每个检索与用户相关的项目 ID 数组。
- 第三个必须遍历项目 ID 的数组并检索与项目相关的数据。
我想要这样的结果:
[{'username': 'richard', projects: [{"id": 1, "name": "test"}]}, ...]
但我完全被 mergeMap、forkJoin 等所困扰。
我尝试过的东西:
getUserTeamMembers(): Observable<any> {
return this.http.get(`${environment.serverUrl}/user/profil`).pipe(
mergeMap((teamUsers: any) =>
this.http.get(
`api/user/${teamUsers.data._id}/team`
)
),
mergeMap((teamUsers: any) =>
forkJoin(
...teamUsers.data.map((user: any) =>
this.http.get(`api/user/${user.id}`)
)
)
),
map((res: any) =>
res
.map((user: any) => {
if (user.data) {
return {
firstname: user.data.local.firstname,
lastname: user.data.local.lastname,
email: user.data.local.email,
projects: user.data.local.projects,
language: user.data.local.lang
};
}
})
.filter((user: any) => user !== undefined)
),
tap(t => console.log(t)),
catchError(err => throwError(err))
);}
我尝试了很多东西,但我不知道在哪里填充我的项目数组,这些项目目前只包含 id,而不是数据相关:
[{'username': 'richard', projects: ['id1', 'id2']}, ...]
【问题讨论】:
标签: rxjs observable