【发布时间】:2021-07-08 02:54:45
【问题描述】:
通过 Rollbar 跟踪我们应用的客户端错误。我们不断收到这个在 Safari 和 Chrome 中不是很有用的错误:
[unhandledrejection] error getting `reason` from event
我将此追踪到 Rollbar JS,当它无法找出 unhandledrejection 事件处理程序中的错误时,它最终创建了此消息。
function captureUnhandledRejections(window, handler, shim) {
if (!window) { return; }
if (typeof window._rollbarURH === 'function' && window._rollbarURH.belongsToShim) {
window.removeEventListener('unhandledrejection', window._rollbarURH);
}
var rejectionHandler = function (evt) {
var reason, promise, detail;
try {
reason = evt.reason;
} catch (e) {
reason = undefined;
}
try {
promise = evt.promise;
} catch (e) {
promise = '[unhandledrejection] error getting `promise` from event';
}
try {
detail = evt.detail;
if (!reason && detail) {
reason = detail.reason;
promise = detail.promise;
}
} catch (e) {
// Ignore
}
if (!reason) {
reason = '[unhandledrejection] error getting `reason` from event';
}
if (handler && handler.handleUnhandledRejection) {
handler.handleUnhandledRejection(reason, promise);
}
};
rejectionHandler.belongsToShim = shim;
window._rollbarURH = rejectionHandler;
window.addEventListener('unhandledrejection', rejectionHandler);
}
有没有人看到这是关于什么的?
【问题讨论】:
-
是否应该删除 node.js 标签,因为这是客户端代码?
-
噢!你是对的。我已删除我的 cmets,以免误导未来的读者。
标签: javascript node.js rollbar