Ошибка перехвата обещания с vue-ресурсом - PullRequest
0 голосов
/ 25 сентября 2019

Я бы хотел перехватить все ответы 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);
    });
}

Я хотел бы избавиться от () => {} и использовать код перехватчика для запуска.

...