Ax ios не улавливает ошибку в catch и странные вещи, происходящие тогда - PullRequest
0 голосов
/ 28 мая 2020

У меня есть приложение в Vuejs с сервером в узле, которое будет отвечать на вызов ax ios, сделанный приложением.

Когда сервер отвечает с ошибкой, ax ios будет не улавливать его и переходить к вызову .then

Более того, ответ различается в зависимости от того, ошибка это или нет: если это не ошибка, я могу проверить статус в response.status Если это ошибка , Я должен проверить в response.response.status

Вот пример того, что мне нужно сделать для обработки ошибок:

function post(url, data, headers = {}){
  return new Promise((resolve, reject) => {
    axios.post(BASE_URL+url, data, { headers: headers }).then(response => {
      if(response.response != undefined && response.response.status >= 400)
        return reject(response.response.data.message);
      resolve(response.data);
    }).catch(err => reject(err.message));
  });
}

Есть ли способ для ax ios поймать ошибка ответа в .catch, чтобы я мог упростить этот уродливый код, который не имеет особого смысла?

1 Ответ

0 голосов
/ 28 мая 2020
function post(url, data, headers = {}){
  return axios.post(BASE_URL+url, data, { headers: headers }).then(response => {
      if(response.response != undefined && response.response.status >= 400)
        return Promise.reject(response.response.data.message);
      return response.data
    });
  });
}
...