Что использовать вместо window.onunhandledrejection для обработки ошибок обещаний в разных браузерах? - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь создать регистратор для обработки ошибок на клиенте и отправки их на сервер.Каков наилучший способ обработки ошибок в обещаниях (в .then)?

Я использую этот код, который работает более или менее нормально только в CHROME

window.onunhandledrejection = function(e) {
    if (e && e.detail && e.detail.reason) {
        this.sendErrorDetails('error', e.detail.reason.message)
    }
}

Он должен быть отделенФайл logger.js, который автоматически отлавливает все ошибки.

1 Ответ

0 голосов
/ 28 мая 2018

unhandledrejection представляется единственным решением, только Chrome и Safari его поддерживают (октябрь 2018 г.).

В качестве альтернативы вы можете использовать axios вместо этого, с которым выможно использовать перехватчик ответов в качестве обработчика глобальных ошибок, проверьте:

Вот копия фрагмента кода из axios README для удобства:

// Add a request interceptor
axios.interceptors.request.use(function (config) {
    // Do something before request is sent
    return config;
  }, function (error) {
    // Do something with request error
    return Promise.reject(error);
  });

// Add a response interceptor
axios.interceptors.response.use(function (response) {
    // Do something with response data
    return response;
  }, function (error) {
    // Do something with response error
    return Promise.reject(error);
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...