Window: rejectionhandled 事件

当被拒绝的 JavaScript Promise 延迟处理时(即在拒绝导致 unhandledrejection 事件后附加处理程序),rejectionhandled 事件将发送到脚本的全局作用域(通常为 window,但也可能是 Worker)。

这可以与 unhandledrejection 事件一起用于调试和实现应用程序弹性,当 promise 被拒绝但当时没有处理程序时,会发送 unhandledrejection 事件。

语法

在诸如 addEventListener() 的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("rejectionhandled", (event) => {});
onrejectionhandled = (event) => {};

事件类型

事件属性

PromiseRejectionEvent.promise 只读

被拒绝的 JavaScript Promise

PromiseRejectionEvent.reason 只读

一个值或 Object,指示 promise 被拒绝的原因,如传递给 Promise.reject()

事件处理程序别名

除了 Window 接口之外,事件处理程序属性 onrejectionhandled 也在以下目标上可用

示例

您可以使用 rejectionhandled 事件将被拒绝的 promise 记录到控制台,以及它们被拒绝的原因

js
window.addEventListener(
  "rejectionhandled",
  (event) => {
    console.log(`Promise rejected; reason: ${event.reason}`);
  },
  false,
);

规范

规范
HTML 标准
# unhandled-promise-rejections
HTML 标准
# handler-window-onrejectionhandled

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅