Обработка ошибки сети

163
07 апреля 2019, 08:00

Здравсвуйте! Появилась задача при запросах к API при каких либо "Network error" выводить соответствующее сообщение. Вот только Safari (мобильный) например часто делает abort запросов, если например выходишь из браузера, и потом когда человек возвращается в браузер он встречает надоедливое окошко "У вас проблемы с интернетом". Это происходит потому что запросы к API происходят по setInterval. Я принял решение не выводить эту ошибку, если запрос был фоновый по setInterval. Вот только обработка ошибок для всех методов API общая, можно ли как-то через error.config узнать что за запрос был? Проверить по URL запроса конечно можно, но это получится кривовато. Чтобы было понятно, о чём я. Используется интерцепторы ответа на запрос:

http.interceptors.response.use(function (response) {
}, function(error){
console.log(error.config);
if(error.message === 'Network Error')
alert("У вас проблемы с интернетом")
});

У меня конечно есть идея использовать отдельный инстанс axios для методов setInterval. Но этот вариант не очень нравится, хотелось бы что-то более элегантное. Например, чтобы создавая axios запрос, можно было передать какой-то параметр в этот error.config.

Answer 1

Пока формулировал вопрос, сам догадался. В axios этот config можно передавать с запросом:

http.get('api-uri', {test:'1'})

И параметр test будет доступен в error.config

READ ALSO
This в стрелочной функции axios

This в стрелочной функции axios

Пытаюсь настроить глобально axios во vuejs и вывод сообщений при ошибке

108
Axios interceptors и вывод сообщения об асинхронной загрузке

Axios interceptors и вывод сообщения об асинхронной загрузке

Использую vuejs и axios для отправки запросов к API

170
npm run build. Как правильно?

npm run build. Как правильно?

Есть проект create-react-buildПосле сборки webpack добавляет к src всех файлов стилей, js лишний слеш вначале (см

208