问题描述
在我的应用程序中,我将全局事件处理程序用于“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 (将#修改为@)