Ошибка в методе компонента Vue с debounce никогда не сообщается - PullRequest
0 голосов
/ 23 февраля 2019

В компоненте Vue приложения, над которым я работаю, вызывается метод с использованием lodash.debounce для уменьшения количества вызовов.Но я заметил, что если какая-либо ошибка возникает внутри дебазированного метода, она не сообщается наблюдателям ошибок на уровне компонентов или приложений.

Есть ли способ сообщить об ошибках в дебасированных методах?

Методы компонентов:

methods: {
  doMethod: function() {
    throw new Error();
  },
  doMethodDebounce: _.debounce(function() {
    throw new Error();
  }, 100)
},

Прослушивание ошибок следующими способами:

В App.vue:

errorCaptured() {
  alert('Error in App.vue');
},

В main.js:

Vue.config.errorHandler = () => {
  alert("Error in main.js");
};

Пожалуйста, посмотрите работающий пример в этой демоверсии .

1 Ответ

0 голосов
/ 24 февраля 2019

Я не совсем уверен, почему, но обходной путь состоит в том, чтобы обернуть тело предполагаемой функции с $nextTick:

methods: {
  doMethodDebounce: _.debounce(function() {
    this.$nextTick(() => {

      // your potentially error-throwing code here

    })
  }, 100)
}

демо

...