Как я могу каскадировать вызовы RxJs для извлечения данных из этой надуманной службы.Каскадные вызовы ajax с RxJs
Первый запрос идет к/клиент/1
/клиент /: идентификатор
Ответ:
{
Name: "Tom",
Invoices: [1,3],
Orders: [5,6]
}
В ответ клиента есть 2 InvoiceIds, которые мы используем, чтобы получить доступ к второй услуги:
/счета-фактуры /: id
Response
{
Id: 1,
Amount: 10
}
В ответ клиента есть 2 OrderIds, которые мы используем для доступа к третьей службы:
/заказов /: идентификатор
Response
{
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'
}]
}
Как передать идентификаторы по конвейеру, чтобы получить зависимые объекты.
Чувство моего чувства говорит мне, что я, вероятно, должен использовать оператор flatMap, но я абсолютно не знаю, как все это может работать вместе.
var ajax = Rx.DOM.getJSON('/api/customers/1')
.flatMap(p => p.Invoices.map(x =>
Rx.DOM.getJSON('/api/invoices/' + x)
));
'Rx', вероятно, не является правильным инструментом для работы здесь. Используйте Promises и 'fetch()'. –