javascript - Zone.js 中的自定义错误处理程序

标签 javascript angular typescript zonejs

我一直在使用 Zone.js,我想为任何未捕获的异常设置日志记录。我可以像这样设置一个错误处理程序:

window.onerror = function(e) { 
    //send an error report to the server
}

但是如果在 Promise 中抛出异常,这将不起作用。 Zone 错误处理程序的好处是它 Hook 到 Promises 中并为它们中的异常触发,但是除了覆盖一堆Zone 上的私有(private)字段。

是否有可用于更新错误处理程序的区域的实际 API,或者我是否必须更改构造根区域的 polyfill 或覆盖私有(private)字段或类似内容?

最佳答案

对于 promise uncaught promise 错误,从 zone.js 0.78 开始,您可以使用此 API。

https://github.com/angular/zone.js/pull/627

 window.addEventListener("unhandledrejection", function (event) {
  console.warn("WARNING: Unhandled promise rejection. Shame on you! Reason: "
               + event.reason);
});

window.addEventListener("rejectionhandled", function (event) {
  console.log("Promise rejected! Reason: " + reason);
});

关于javascript - Zone.js 中的自定义错误处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39260612/

相关文章:

使用 Django 时出现 Javascript 验证错误

javascript - 永远不会调用 Observable.forkJoin 的订阅

angular - ionic 事件触发次数过多。每次触发时加一?

angular - 如何处理以 Angular react 形式的对象数组形式出现的响应

angular - 错误 TS1005 : ':' expected TypeScript Angular6

typescript - typescript 中函数的 ' : ' 和 ' => ' 有什么区别?

javascript - 根据一天中的时间和一周中的某一天更改背景?

javascript - 为什么这个 for 循环不起作用?

reactjs - 在 React 中导入延迟加载时的 TS2349

javascript - Jquery Tap and Touch 这么长的 Action