如何解决Firefox 在全局事件处理程序中捕获后向控制台输出未捕获的错误
在我的应用程序中,我将全局事件处理程序用于“unhandledrejection”事件。 其目的是捕获对本地服务器的各种网络请求的错误并处理“服务器无响应”的情况。
事实上它正在工作,但我仍然在 FF 中看到一个红色的控制台。
这是我的代码:
private setupEmergencyHandler() {
window.addEventListener('unhandledrejection',e => {
e.preventDefault();
e.promise.catch((error: Error) => {
if (
!this.emergencyHandlerIsWorking &&
error.message === REST_CLIENT_ERROR.CONNECTION_REFUSED
) {
this.emergencyHandlerIsWorking = true;
this.popup404.show();
const retry = async () => {
try {
await REST_CLIENT_GaraGE.getCars();
await this.sendRebootMsg();
this.popup404.hide();
this.emergencyHandlerIsWorking = false;
} catch {
await new Promise(res => setTimeout(res,1000));
retry();
}
};
retry();
}
});
});
}
问题是为什么在 Chrome 中我只收到 HTTP 请求错误:
GET *** net::ERR_CONNECTION_REFUSED
但在 FF 中我得到相同的结果:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at *** (Reason: CORS request did not succeed).
还有:
Uncaught (in promise) Error: CONNECTION_REFUSED
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。