Поймать все необработанное отклонение в angular.js - PullRequest
0 голосов
/ 02 октября 2018

Я разрабатываю приложение Electron с angularjs в процессе рендеринга.Я ищу способ сообщать обо всех непредвиденных ошибках во внешнюю службу (в моем случае - rollbar) и добавляю некоторую настраиваемую логику.

украшение углов $ exceptionHanlder работает для всех необработанных ошибок ...

commonModule.config([
    '$provide', ($provide) => {
    $provide.decorator('$exceptionHandler', ['$delegate', function($delegate) {
        return function (exception, cause) {
            << custom logic >>
            $delegate(exception, cause); // fallback to inner wrapper provided by ng-rollbar
        };
    }]);
    }
]);

... , но это не работает, если в обещании возникает ошибка, как показано ниже:

async function(arg) {
    const exists = await checkIfExists(arg);
}
checkIfExists(arg) {
    return new Promise((resolve, reject) => { reject(); });
}

Я знаю, что есть событие необработанного отклонения но как правильно его перехватить в angularjs? код ниже не работает :

commonModule.config(['$window', ($window) => {
    $window.addEventListener('unhandledrejection', function(event) {
        <<custom logic>>
        Rollbar.error('unhandled rejection', event.reason);
        console.log('show me!')
    });
}]);

PS: IЯ знаю, что может использовать блок try-catch, но меня не интересует регистрация операционных ошибок по одному для каждого асинхронного вызова в коде

...