Как объединить в 1 объект "родительский" (внешний) и "дочерний" (вложенный) запрос на выборку
1) У меня есть список (массив) URL-адресов для получения UserInfo.
const userURLs = [
'https://jsonplaceholder.typicode.com/users/1',
'https://jsonplaceholder.typicode.com/users/2',
'https://jsonplaceholder.typicode.com/users/3'
];
2) После загрузки UserInfo (не все загружены - ни один из пользователей) мне нужно получить некоторые детали ( https://jsonplaceholder.typicode.com/todos?userId=$ {user.id})
3) Итак, желаемый результат внутри подписки:
[{ ...userInfo, todo: {...todo} }, { ...userInfo, todo: {...todo} }, { ...userInfo, todo: {...todo} }]
У меня есть обещающее и очень элегантное решение для асинхронного ожидания. Но только начал изучать rxjs. У меня есть следующий код, но я не знаю, как объединить userInfo + todo в один объект без Observable.create().
rxjs.of(userURLs)
.pipe(
rxjs.operators.mergeAll(),
rxjs.operators.mergeMap(url => fetch(url)),
rxjs.operators.mergeMap(response => response.json()),
rxjs.operators.mergeMap(user => fetch(`https://jsonplaceholder.typicode.com/todos?userId=${user.id}`)),
rxjs.operators.mergeMap(response => response.json())
)
.subscribe((combinedUsersAndTodosArray) => {
console.log(combinedUsersAndTodosArray); // only todos are here
});
Большое спасибо!!!