如何使用具有 redux 可观察性的 RxJs 为第一个 HTTP 响应中的每个项目发出请求?



我有两个微服务(用户和付款(,我想用他们的付款来获取用户。 所以首先我从用户微服务(GET/users/(中获取用户:

[{userId: 1, name: 'john', ...}, {userId: 2, name: 'mark', ...}, {userId: 3, name: 'bob', ...}]

然后我想为每个用户付款。我需要向支付微服务(GET/payments/userId(发送请求

预期成果.-

[
{userId: 1, name: 'john', ..., payments: [1,2,3]},
{userId: 2, name: 'mark', ..., payments: [2,3,4]},
{userId: 3, name: 'bob', ..., payments: [3,4,5]}
]

我有这个代码来获取用户。

const fetchUsersEpic = action$ =>
action$.ofType(FETCH_USERS).flatMap(action =>
Observable.concat(
Observable.of(actions.loading(true)),
Observable.fromPromise(usersService.getUsers())
.flatMap(response =>
//I need to fetch payments for each user first              
Observable.concat(
Observable.of(actions.loading(false)),
Observable.of(actions.fetchUsersFulfilled(response)),
))
.catch(error => Observable.of(actions.loading(false))),
));

您的服务返回承诺?你可以这样尝试

尝试如下:

users = await usersService.getUsers();
users = users.map(user => ({
...user,
payments: await paymentsService.getPayments(user.userId),
}));

最新更新