Использую vue.js и axios для отправки запросов к API. Есть необходимость глобально настроить отображение заглушки на весь экран, если запрос выполняется долго
Выяснилось, что axios можно настроить глобально, чтобы отлавливать действия до момента отправки запроса, после получения ответа, а также ловить ошибки. В общем виде это выглядит так
axios.interceptors.request.use((config) => {
// Do something before request is sent
return config;
}, (error) => {
// Do something with request error
return Promise.reject(error);
});
// Add a response interceptor
axios.interceptors.response.use((response) => {
// Do something with response data
return response;
}, (error) => {
// Do something with response error
return Promise.reject(error);
});
Для вывода сообщений пользователю использую библиотеку f3oall/awesome-notifications (есть отдельный билд для vue). В документации указано, что заглушка на весь экран выводится вот так
asyncBlock(promise, onResolve, onReject, html)
Также можно отдельно завершать успехом или ошибкой
notifier.asyncBlock(Promise.resolve("all done")) // won't show anything after promise resolved
notifier.asyncBlock(Promise.reject("some error")) // will show a new alert toast with message "some error"
Однако как можно это использовать вместе с axios.interceptors не понимаю. Ведь у меня два interceptors. И как в первом, например, начать asyncBlock, а во втором закончить?
Как быть? Может есть другие варианты?
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники