我一直在使用 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/