Я бы хотел перехватить все ответы API с помощью кода! = 200 в моем файле main.js со следующим кодом, отправить действие и после этого показать тост с сообщением об ошибке.Я использую vue-resource, и мой перехватчик выглядит следующим образом:
Vue.http.interceptors.push(function(request, next) {
next(function(response) {
debugger;
if (response.status != 200) {
store.dispatch("errorAction", response);
}
});
});
Но код внутри обратного вызова никогда не достигается ...
И мой вызов API делается таким образом.Контроллер Java просто генерирует исключение с кодом ошибки 500.
Vue.http
.get(`http://${ADDRESS}/${store.state.module}/foo/exception`)
.then(() => {}, () => {});
Я новичок в Promises и, возможно, я что-то напутал, но я не хочу передавать сообщение об ошибке каждому отдельному обещанию.А что если мой запрос выглядит следующим образом:
export function getFoo(cb) {
Vue.http
.get(`http://${ADDRESS}/${store.state.module}/foo`)
.then(
response => {
return response.json();
},
() => {}
)
.then(foos => {
cb(foos);
});
}
Я хотел бы избавиться от () => {} и использовать код перехватчика для запуска.