【发布时间】:2020-12-09 03:27:56
【问题描述】:
我有一个 Workspace 模型、一个 Request 模型......现在还有一个 CatalogItem 模型,它需要像这样将两者结合起来:
{
workspace: Workspace
requests: Request[]
}
我在如何使用getCatalog(): Observable<CatalogItem[]> 函数创建它时遇到了一些困难……它应该为每个Workspace 返回一个CatalogItem,并添加任何关联的Request。
我意识到我的尝试很遥远,但我希望它足以帮助理解我的意图:
getCatalog(): Observable<CatalogItem[]> {
return this.http.get<Workspace[]>(`${this.baseUrl}/workspace`).pipe(
switchMap( (ws) => {
return {
workspace: ws,
requests: this.http.get<Request[]>(`${this.baseUrl}/${ws.id}/requests`).subscribe();
}
})
);
//TODO: combine workspace and request create catalog obj
}
【问题讨论】:
-
澄清一下,第二次调用取决于第一次调用的结果? (你不能让它们并行运行)
-
对,我正在尝试进行嵌套调用(在我们获得工作区数据后,请求调用可以并行运行)......但希望将这些都放在 getCatalog() 中。 . 所以 /{workspace_id}/requests 将添加与从 /workspace 调用返回的每个工作空间相关联的请求
-
我在下面提出了一个可行的答案。让我知道这是否接近您想要的。
标签: angular rxjs observable