LINUX.ORG.RU

[Решено] Что делает axios() при обрыве связи с сервером?

 , axios,


0

1

Напомню, что про это написано в доке.
https://github.com/axios/axios#response-schema
https://github.com/axios/axios#handling-errors
Если у пользователя нет сети или доменное имя не резолвнулось или сервера такого нет, то что должно быть записано в error?
Можно предположить, что это

The request was made but no response was received
т.е. во всех трех случаях будет объект, в котором error.response содержит какое-то ложное значение, но ничего конкретного не понятно.

Лучший ответ

★★★

Последнее исправление: damix9 (всего исправлений: 2)

Axios для браузера использует XMLHttpRequest в качестве бекенда. Однако этот бекенд не сообщает в колбеке ошибки какую-либо человекочитаемую причину, а потому Axios тупо возвращает свой объект ошибки. Однако он не может подкинуть туда response с какими-либо данными просто потому, что никакого ответа от сервера он не получил. Вышеприведённая ссылка на обработку ошибок говорит о случае, когда ответ от сервера был не 2xx.

static_lab ★★★★★
()
Последнее исправление: static_lab (всего исправлений: 1)
Ответ на: комментарий от static_lab

Спасибо большое за объяснение!

Получается, он возвращает экземпляр класса AxiosError. Тогда каким логическим выражением надо проверять, произошел ли обрыв связи с сервером, error.response == false, error.code == AxiosError.ERR_NETWORK?

Вообще ужасно документирована эта библиотека. Ладно в код можно посмотреть, но как бы из этого не понятен API.

damix9 ★★★
() автор топика