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
或其他任何东西。在正常运行的程序中,不应出现未经处理的拒绝。