捕获angular.js中所有未处理的拒绝

时间:2018-10-02 14:06:53

标签: javascript angularjs error-handling promise rollbar

我正在渲染器过程中使用angularjs开发Electron应用程序。我正在寻找一种将所有无法预测的错误报告给外部服务(在本例中为滚动条)并放置一些自定义逻辑的方法。

装饰角度 $ 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(); });
}

我知道有unhandledrejection event,但是在angularjs中捕获它的正确方法是什么? 下面的代码不起作用

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

PS:我知道可以使用try-catch块,但是我对代码中每个异步调用一个一个地记录操作错误不感兴趣

0 个答案:

没有答案
相关问题