【发布时间】:2016-11-03 00:55:55
【问题描述】:
我如何级联 RxJs 调用以从这个人为的服务中检索数据。
第一个请求转到 /customer/1
/客户/:id
回应:
{
Name: "Tom",
Invoices: [1,3],
Orders: [5,6]
}
在客户响应中,我们使用 2 个 InvoiceId 来访问第二个服务:
/invoices/:id
回应
{
Id: 1,
Amount: 10
}
在客户响应中,我们使用 2 个 OrderId 来访问第三项服务:
/orders/:id
回应
{
Id:2,
Date: '2016-11-12'
}
最后我想设计一个像这样的对象:
{
Name: "Tom",
Invoices: [
{
Id: 1,
Amount: 10
},
{
Id: 3,
Amount: 5
}],
Orders: [
{
Id:5,
Date: '2016-11-12'
},
{
Id:6,
Date: '2016-11-12'
}]
}
如何通过管道传递 id 以便检索依赖对象。
我的直觉告诉我我可能应该使用 flatMap 运算符,但我完全不确定这一切如何协同工作。
var ajax = Rx.DOM.getJSON('/api/customers/1')
.flatMap(p => p.Invoices.map(x =>
Rx.DOM.getJSON('/api/invoices/' + x)
));
【问题讨论】:
-
Rx可能不是这里工作的正确工具。使用 Promises 和fetch()。
标签: javascript rxjs