title: Multiple RxJS AJAX Requests
body: <p>I'm using <code>rxjs</code> to make several http requests and I want to end up with an object that looks something like:</p>
  
  <pre><code>{
    100: {
      ...response from api call...
    },
    205: {
      ...response from api call...
    },
    ...etc...
  }
  </code></pre>
  
  <p>Here's what I have so far:</p>
  
  <pre><code>const projectIds = [100, 205, 208, 300]
  const source = Rx.Observable
    .from(projectIds)
    .flatMap(id =&gt; get(`projects/${id}/builds`))
    .map(response =&gt; response['data'])
    .zip(projectIds)
    .toArray()
  
  source.subscribe(pipelines =&gt; {
    console.log(pipelines)
  })
  </code></pre>
  
  <p>This gives me back an array of arrays where the first element is the response from the call and the second element is the id of the project.</p>
  
  <p>The problem is that the response doesn't match the project id as the responses come back in different orders depending on which request completes first.</p>
  
  <p>How can I preserve the order (or at least know which projectId goes with each response) while also ending up with an object at the end (currently is an array)?</p>