Моя проблема:
Я установил перехватчик для перехвата кодов ошибок в ответах HTTP.Когда JWT истекает, у меня есть код 401, возвращающийся с сервера.Вот мой перехватчик:
this.axios.interceptors.response.use(undefined, (error) => {
if (error.response.status === 401) {
this.$store.dispatch('auth/logout').then(() => {
this.$router.push({name: 'login'})
return Promise.reject(error)
})
}
})
Мой перехватчик работает нормально, за исключением того, что перехватываемый запрос все еще преобразуется в часть .then ().
this.axios.get('/texts').then(function(){
// This is still being executed and generates javascript errors because the response doesn't contain the right data
})
Из документации Axios яобнаружил, что вы можете предотвратить это, позвонив по номеру
this.axios.get('/texts').then(function(){
// only on success
}).catch(function(){
// only on errors
}).then(function(){
// always executed
})
Но это довольно многословно, и я не хочу делать это при каждом запросе моего приложения.
Мой вопрос:
Как предотвратить использование функции axios обратного вызова .then () при возникновении ошибки.Это то, что я могу сделать в перехватчике?Как event.stopPropagation () или что-то в этом роде?