title: Angular 6 pipe RxJs operator to chain 3 dependant observables
body: <p>I have 3 dependent Rest API resources (lets say observables) like this:</p>
  
  <p>1st observable produces one item as array of users, like this:</p>
  
  <pre><code>getUsers(): Observable&lt;User[]&gt;
      [
        {
          "id": 1,
          "name": "Peter",
          "surname": "Smith"
        },
        {
          "id": 2,
          "name": "John",
          "surname": "Wayne"
        },
        ...
      ]
  </code></pre>
  
  <p>2nd observable can be used to fetch addresses assigned to user, so the input parameter is User ID, and returns a one item as array of addresses:</p>
  
  <pre><code>getUserAddresses(user_id: string): Observable&lt;Address[]&gt;
      [
        {
          "id": 1,
          "city": "London",
          "street": "Wicombe 34"
        },
        {
          "id": 2,
          "city": "Paris",
          "street": "La fever 20"
        },
        ...
      ]
  </code></pre>
  
  <p>3rd observable can be used to fetch companies assigned to user, so the input parameter is User ID, and returns a one item as array of companies:</p>
  
  <pre><code>getUserCompanies(user_id: string): Observable&lt;Company[]&gt;
      [
        {
          "id": 1,
          "name": "Fintch CO",
          "state": "France"
        },
        {
          "id": 2,
          "name": "C&amp;C inc.",
          "state": "USA"
        },
        ...
      ]
  </code></pre>
  
  <hr>
  
  <p>I want to chain these 3 observables into one which will produce the result again as one item, that will contain array of users with their additional addresses arrays and companies array, like following:</p>
  
  <pre><code>    [
        {
          "id": 1,
          "name": "Peter",
          "surname": "Smith",
          "addreesses": 
                 [
                   {
                     "id": "1",
                     "city": "London",
                     "street": "Wicombe 34"
                   },
                   {
                     "id": "2",
                     "city": "",
                     "street": "La fever 20"
                   }
                 ],
          "companies": 
                 [
                   {
                     "id": "1",
                     "name": "Fintch CO",
                     "state": "France"
                   },
                   {
                     "id": "2",
                     "name": "C&amp;C inc.",
                     "state": "USA"
                   }
                 ]
          }
        },
        {
          "id": 2,
          "name": "John",
          "surname": "Wayne",
          "addresses": [...],
          "companies": [...],
        },
        ...
      ]
  </code></pre>
  
  <p>How should look like the operators composite to achieve that in Angular 6 with RxJs 6?
  Thanks a lot for advice.</p>