猿问

拒绝处理不开火

我正在尝试使用,rejectionhandled但无法启动。下面的代码应该基于我能找到的所有文档工作。我注册了一个监听器,rejectionhandled然后拒绝一个承诺并抓住它。在启用了“测试”标志的 chrome 和 firefox 中,会记录但未“拒绝”。我错过了什么?


window.addEventListener("rejectionhandled", e => console.log("rejected"), false);

new Promise((resolve, reject) => setTimeout(reject, 1000)).catch(err => console.error("testing"))


qq_花开花谢_0
浏览 192回答 1
1回答

三国纷争

该rejectionhandled事件不会在每次处理的拒绝时触发,它只会在最初未处理的拒绝(导致unhandledrejectionevents)时触发,但随后确实附加了一个处理程序。这些事件是从ECMAScript 规范中实现定义HostPromiseRejectionTracker的 HTML 实现中触发的,其注释说HostPromiseRejectionTracker 在两种情况下被调用:当一个承诺在没有任何处理程序的情况下被拒绝时,它的操作参数被设置为“拒绝”。当一个处理程序第一次被添加到一个被拒绝的承诺时,它的操作参数被设置为“handle”。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答