如何使用RxJs和redux observable为第一个HTTP响应中的每个项目发出请求?

如何使用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

我有两个微服务(用户和付款),我想用他们的付款获取用户。 因此,首先我从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: 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),
}));