У меня есть 3 зависимых ресурса API отдыха (скажем, наблюдаемые), например:
1-я наблюдаемая создает один элемент в виде массива пользователей, например:
getUsers(): Observable<User[]>
[
{
"id": 1,
"name": "Peter",
"surname": "Smith"
},
{
"id": 2,
"name": "John",
"surname": "Wayne"
},
...
]
2-я наблюдаемая может использоваться для получения адресов, назначенных пользователю, поэтому входным параметром является идентификатор пользователя, и он возвращает один элемент в виде массива адресов:
getUserAddresses(user_id: string): Observable<Address[]>
[
{
"id": 1,
"city": "London",
"street": "Wicombe 34"
},
{
"id": 2,
"city": "Paris",
"street": "La fever 20"
},
...
]
3-я наблюдаемая может использоваться для выбора компаний, назначенных пользователю, поэтому входным параметром является идентификатор пользователя, и возвращается один элемент в виде массива компаний:
getUserCompanies(user_id: string): Observable<Company[]>
[
{
"id": 1,
"name": "Fintch CO",
"state": "France"
},
{
"id": 2,
"name": "C&C inc.",
"state": "USA"
},
...
]
Я хочу объединить эти 3 наблюдаемые в одну, которая будет производить результат снова как один элемент, который будет содержать массив пользователей с их дополнительными массивами адресов и массивом компаний, как показано ниже:
[
{
"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&C inc.",
"state": "USA"
}
]
}
},
{
"id": 2,
"name": "John",
"surname": "Wayne",
"addresses": [...],
"companies": [...],
},
...
]
Как должны выглядеть составные операторы для достижения этого в Angular 6 с RxJs 6?
Большое спасибо за совет.