Ошибка Vuejs после прохождения перехватчика axios

#vue.js

#vue.js

Вопрос:

У меня проблема, которую я не могу решить vue.js Я перехватываю запросы, которые возвращают ошибку (перехватчик axios), и когда она проходит через этот перехватчик, перехват запроса axios все равно учитывается.

За исключением того, что я жду ошибки «error.api». который я не получаю, поэтому он выдает ошибку консоли.

Вот код:

 axios.interceptors.response.use(null, error => {
    let path = '/login';
    switch (error.response.status) {
        case 401: path = '/login'; break;
        case 404: path = '/404'; break;
    }
    store.commit('logout')
    router.push(path);
    return Promise.reject(error);
});  

эта ошибка

 2.js:376 Uncaught (in promise) TypeError: Cannot read property 'api' of undefined  

И, наконец, запрос axios и ошибка генерируются последней строкой (err.api[0])

 deleteApi(id) {
    this.$store.dispatch('deleteApi', id)
        .then((res) => {
            this.$toast.success(res.data.success)
            this.deleteApiModal(id)
        })
        .catch(err => this.$toast.error(err.api[0]))
},  

Ответ №1:

Я, наконец, нашел решение, но очень грязное, которое я нахожу повторяющимся не так много.

При каждом вызове axios ставится условие, которое проверяет, существует ли «ошибка»…

Я бы предпочел иметь возможность взаимодействовать с перехватчиком, чтобы справиться с этим только в одном месте.

Если у кого-то есть лучшее решение, я приму его!

 deleteApi(id) {
            this.$store.dispatch('deleteApi', id)
                .then((res) => {
                    this.$toast.success(res.data.success)
                    this.deleteApiModal(id)
                })
                .catch(err => { if(err) this.$toast.error(err.api[0]) })
        },