в реагировать родной, как запросить несколько URL-адресов в одном действии - PullRequest
0 голосов
/ 29 августа 2018

Я хочу получить данные с трех разных URL-адресов одним действием, как этого добиться. У меня есть действие, написанное так.

export function listRepos(user) {
  return {
    type: GET_DATA,
    payload: {
      request: {
        url: `/users/${user}/repos`
      }
    }
  };
}

как добавить axios.all такого рода обещание к действию выше, чтобы выполнить три разных запроса get в одном действии

1 Ответ

0 голосов
/ 29 августа 2018

Это можно сделать с помощью RxJs zip, наблюдаемого в вашем эпическом промежуточном программном обеспечении

Actions.js

export function listRepos(user) {
   return {
           type: GET_DATA,
           payload:[
               request: {
                   url: `/users/${user}/repos`
                 },
               request:{
                   url:`second call`
                },
               request:{
                  url:`third call`
               }]
           }
 }

эпос

 const cartSummary$ = (actions$, state) => {
      return actions$.ofType(Action.CART_SUMMARY)
         .flatMap(actions=> Observable.zip(
                  Api(actions.payload[0].request.url),
                  Api(actions.payload[1].request.url),
                  Api(actions.payload[2].request.url))
                     .map(data=> data[0],data[1],data[2])
                 )

    }

в массиве данных вы можете получить доступ к данным отдельных API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...