如何合并为1个对象“父级”(外部)和“子级”(嵌套)获取请求

时间:2018-10-24 15:06:17

标签: rxjs rxjs-pipeable-operators

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
    });

非常感谢!

0 个答案:

没有答案