Javascript 全局未处理拒绝处理程序
我正在使用全局未处理拒绝 以下是处理程序的注册方式:Javascript 全局未处理拒绝处理程序,javascript,promise,event-handling,Javascript,Promise,Event Handling,我正在使用全局未处理拒绝 以下是处理程序的注册方式: window.addEventListener('unhandledrejection', (params) => { }); 我不确定如何处理此回调中的承诺?一切正常,每次promise失败和catch未实现时都会调用此处理程序,因此我得到了'Uncaught(in promise) 是否有一种方法可以处理未处理的释放中失败的承诺,这样它就不会抛出'Uncaught(in promise)错误,并且承诺失败的代码将正常继续,就好像
window.addEventListener('unhandledrejection', (params) => {
});
我不确定如何处理此回调中的承诺?一切正常,每次promise
失败和catch
未实现时都会调用此处理程序,因此我得到了'Uncaught(in promise)
是否有一种方法可以处理未处理的释放中失败的承诺,这样它就不会抛出'Uncaught(in promise)
错误,并且承诺
失败的代码将正常继续,就好像执行了捕获
一样?在params
参数中,我有权访问被拒绝的promise
,但我不确定该如何处理,或者这是否可能?根据规范,事件是可取消的,因此您可以添加
params.preventDefault(); // Note: `params` here is more idiomatically called `event`
到处理程序以阻止默认操作。(这可以防止Chrome上出现“未处理拒绝”警告,而Chrome在不使用polyfill的情况下执行此操作。)
示例不带预防默认值
:
window.addEventListener(“unhandledrejection”,事件=>{
log(“获取了未处理的弹出事件”);
});
承诺。拒绝()代码>
查看真实浏览器控制台。
否,unhandledrejection
事件不是处理错误的地方。它的唯一用途是监控。要正确处理拒绝,请在使用承诺的地方修复代码,即实现catch
或其他任何东西。在正常运行的程序中,不应出现未经处理的拒绝。