1
说我有返回JSON的两个API调用:合并在角两个相关API调用与观测量/ RxJS
行:
{
{"row": 1, detailId: "a"}
{"row": 2, detailId: "b"}
}
rowDetails:
{
details: { this row details }
}
我需要得到行,然后遍历每个行对象,获取detailId以对rowDetails进行另一次调用,并将详细信息附加到行对象。最终的结构需要发出像这样:
{
{"row": 1, "detailId": a, "details": { row details}}
{"row": 2, "detailId": b, "details": { row details}}
}
在角1我会用q.allSettled等待所有的呼叫完成。
我想以可观察的方式做到这一点,我在概念上和实践上挣扎着。我不明白你应该如何真正发出合并的“流”作为最终产品。
我大致尝试:
this.http
.get('rows')
.map(res => res.json())
.flatMap(group => this.http.get('rowDetails' + detailId))
.map(res => res.json()).
.subscribe(res => console.log(res))
订阅刚刚发出rowDetails调用。如何迭代行调用中的每个对象,并在合并最终产品的结果时将该detailId作为另一个调用?任何帮助将不胜感激。
你的第二个'get'实际上取决于第一个的结果吗?如果不是'Observable.combineLatest'似乎是最好的选择。 – jonrsharpe
是的,它需要来自每个行对象的detailId进行调用以获取特定行的行详细信息 – AnotherMike
因此,您想要为第一个调用的每个结果分割出一个调用,然后将所有结果合并回来? – jonrsharpe