我使用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)
})
这给了我一个数组的数组,其中第一个元素是来自调用的响应,第二个元素是项目的ID。
问题是响应与项目ID不匹配,因为响应以不同顺序返回,具体取决于哪个请求首先完成。
如何保持顺序(或至少知道哪个projectId与每个响应一起),同时最后还有一个对象(当前是一个数组)?