如何使用RxJs和redux observable为第一个HTTP响应中的每个项目发出请求?
我有两个微服务(用户和付款),我想用他们的付款获取用户。 因此,首先我从users microservice(GET/users/)获取用户: 然后我想为每个用户获取付款。我需要向payments微服务发送请求(GET/payments/userId) 预期结果-如何使用RxJs和redux observable为第一个HTTP响应中的每个项目发出请求?,redux,rxjs,xmlhttprequest,observable,redux-observable,Redux,Rxjs,Xmlhttprequest,Observable,Redux Observable,我有两个微服务(用户和付款),我想用他们的付款获取用户。 因此,首先我从users microservice(GET/users/)获取用户: 然后我想为每个用户获取付款。我需要向payments微服务发送请求(GET/payments/userId) 预期结果- [ {userId: 1, name: 'john', ..., payments: [1,2,3]}, {userId: 2, name: 'mark', ..., payments: [2,3,4]}, {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),
}));
users = await usersService.getUsers();
users = users.map(user => ({
...user,
payments: await paymentsService.getPayments(user.userId),
}));