Я использую axios
с trycatch
, но когда API возвращает 500 внутреннюю ошибку сервера, выполнение кода перехватывает, но вне кода функции async
не выполняется, я не знаю почему.
Вот мой код:
export async function authRequest(router, path='/', data={}, method='get') {
const authKey = getAuthKey();
try {
const request = await axios({
method,
url: apiUrl + path,
headers: {
'Authorization': "Bearer " + authKey
},
data
});
return request.data;
} catch (error) {
const isLogged = await axios({
method: 'get',
url: apiUrl + '/isLoggedUser',
headers: {
'Authorization': "Bearer " + authKey
}
});
if (isLogged.data == false) {
router.push({
name: 'login'
})
} else {
console.error('Cannot process this request');
return false;
}
}
}
Вызов этой функции:
const req = await authRequest(
this.$router,
'/video/play',
);
console.log('cannot reach to this statment after 500 error in axios request')
Поскольку последний оператор console.log
не выполняется / не достигает или любой код после когда Axios
выдает внутреннюю ошибку сервера 500.
Обратите внимание: проблема связана с внутренним сервером ax ios 500, который останавливает дальнейшее выполнение кода вне функции authRequest
.