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。 我有下一个代码,但是我不知道如何在没有Observable.create()的情况下将userInfo + todo组合到单个对象中。
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
});
非常感谢!