вызывая два apis асинхронных внутри моей саги Redx, где мне нужны данные из первого ответа для вызова второго API - PullRequest
0 голосов
/ 27 марта 2019

У меня есть этот случай использования, когда мне нужно сделать два вызова API внутри саги Redx.Мне нужен ответ от первого API и использовать его во втором вызове API. В конце мне нужно получить ответ на второй вызов API и заполнить данные моих редукторов.Вот как я поступил в случае одного вызова API и отправил ответ моим редукторам. Меня беспокоит то, как должны происходить события в случае двух вызовов API, поскольку мой второй вызов API зависит от данных из первого вызова API.Я обеспокоен тем, как цеплять вещи в попытке поймать.

   export function* fetchSportsFanDetailsHandler() {
      try {
       const { authToken, sportsFanId } = yield select(state => ({
        authToken: state.auth.authToken,
        sportsFanId: state.auth.userId
      }));
const sportsFanDetails = yield call(
  fetchSportsFanDetails,
  sportsFanId,
  authToken
);

    const { name, id, mobile, photo, communicationEmail } =  sportsFanDetails;
    yield put({
  type: FETCH_SPORTS_FAN_DETAILS_SUCCESS,
  response: sportsFanDetails
   });
    } catch (err) {
    const { error } = err.response.data;
     yield put({
     type: FETCH_SPORTS_FAN_DETAILS_ERROR,
      error: error.message
      });
    }
}

1 Ответ

0 голосов
/ 27 марта 2019

Я бы разделил его на две функции: первая с первым вызовом со своим собственным try / catch и собственным действием при ошибке и возвратом данных запроса.

Затем я проверял бы эти данные, а когда нетпустой вызов второго запроса снова с его собственной попыткой / обработкой и обработкой ошибок.

...