Я использую rxjs
сделать несколько запросов HTTP, и я хочу, чтобы в конечном итоге с объектом, который выглядит примерно так:Несколько RxJS AJAX запросов
{
100: {
...response from api call...
},
205: {
...response from api call...
},
...etc...
}
Вот что я до сих пор:
const projectIds = [100, 205, 208, 300]
const source = Rx.Observable
.from(projectIds)
.flatMap(id => get(`projects/${id}/builds`))
.map(response => response['data'])
.zip(projectIds)
.toArray()
source.subscribe(pipelines => {
console.log(pipelines)
})
Это возвращает мне массив массивов, где первым элементом является ответ от вызова, а второй элемент - это идентификатор проекта.
Проблема заключается в том, что ответ не соответствует идентификатору проекта, так как ответы возвращаются в разных порядках, в зависимости от того, какой запрос завершается первым.
Как я могу сохранить заказ (или, по крайней мере, знать, какой projectId идет с каждым ответом), а также заканчивая объектом в конце (в настоящее время это массив)?