@stas_mihailov

Как обработать ошибку запроса с сервера?

Есть функция которая диспатчит события и делает запрос. Ошибки обрабатываю внутри с помощью try/catch...
Как я могу внешне к ней обратиться, чтобы перехватить ошибку ?
Сейчас делаю так, но всё летит в then (надо catch):
checkEmail({ email }).then((resolve) => {
            console.log("resolve:" + resolve);
        })
        .catch((reject) => {
            console.log("reject:" + reject);
        });


Сама функция:
export const checkEmail = ({ email }) => async (dispatch) => {
  dispatch({
    type: FORM_LOADING,
  });

  try {
    const config = {
      headers: {
        "Content-Type": "application/json",
      },
    };

    const res = await axios.get(`/api/users?email=${email}`, email, config);
    dispatch({
      type: CHECK_EMAIL,
      payload: res.data,
    });

  } catch (err) {
    const errors = err.response.data.errors;
    if (errors) {
      dispatch({
        type: FORM_ERROR,
      });
      return errors[0].msg;
    }
  }
};
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
hzzzzl
@hzzzzl
перебросить ошибку дальше наверх

catch (err) {
    const errors = err.response.data.errors;
    if (errors) {
      dispatch({
        type: FORM_ERROR,
      });
      // return errors[0].msg;
      throw new Error(errors[0].msg)
    }
  }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы