Axios необработанное обещание отклонения - PullRequest
0 голосов
/ 01 ноября 2018

У меня проблема с axios в моем приложении, работающем на родном языке. Сообщение об ошибке предоставляется здесь Pic1 Pic2 Actions.start () никогда не запускается.

Редактировать 1: Вот полный код. Изменить 2: Изображение сообщения об ошибке Pic3 Что касается результатов, const res = await ... должно быть проблемой. Нужно добавить больше деталей, иначе я не могу обновить этот вопрос;)

export const apiPostLogin = (
 accountData
) => async dispatch => {
dispatch(setFetching(true));
try {
  var instance = axios.create({
    baseURL: 'https://api.xxxx.de/',
    timeout: 1000
 });

const res = await axios.post('/api/v1/auth/login', accountData);
Actions.Start();

dispatch(setAuthToken(res.data.token));


  await dispatch(apiGetAccount(res.data.token));
  console.log(res);
} catch (error) {
  console.log(error.response);
  dispatch(setFetching(false));
  if (error.response.status === 401) {
  dispatch(
    setApiResponse({
      apiResponse: true,
      didShowResponse: false,
      apiResponseError: true,
      apiResponseCode: 401,
      apiResponseMessage: 'E-Mail und Passwort stimmen nicht überein'
    })
  );
} else if (error.response.status === 417) {
  dispatch(
    setApiResponse({
      apiResponse: true,
      didShowResponse: false,
      apiResponseError: true,
      apiResponseCode: 417,
      apiResponseMessage: 'Du hast Deine E-Mail noch nicht bestätigt'
    })
  );
} else {
  dispatch(
    setApiResponse({
      apiResponse: true,
      didShowResponse: false,
      apiResponseError: true,
      apiResponseCode: 499,
      apiResponseMessage:
        'Du kannst Dich im Moment nicht bei uns anmelden. Wir befinden   uns im Wartungsmodus'
    })
   );
   }
  }
  };

1 Ответ

0 голосов
/ 01 ноября 2018

Оберните вызов post в блок try try (catch необходим для обработки отклоненных обещаний). Ваш сетевой запрос не удался. Вам нужно отловить ошибку / обработать отказ от обещания

    try {
        const res = await axios.post('/api/v1/auth/login', accountData);
        console.log('Success!');
        console.log(res.status);
        console.log(res.data);
    } catch (e) {
        console.error('Failure!');
        console.error(e.response.status);
        throw new Error(e);
    }
    Actions.Start();

OR попробуйте использовать axios() вместо axios.create()

return axios.({
    method: 'post',
    baseURL: userEndpoint,
    headers: {
        common: {
            Accept: 'application/json',
        }
    }
}).then(...).catch(...);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...