Window:rejectionhandled 事件

當一個被拒絕的 JavaScript Promise 被延遲處理時,即在 Promise 被拒絕並導致 unhandledrejection 事件之後才附加處理程式時,rejectionhandled 事件會被髮送到指令碼的全域性作用域(通常是 window,但也可能是 Worker)。

這可以與 unhandledrejection 事件(當 Promise 被拒絕但在當時沒有處理程式時傳送)結合使用,用於除錯和一般的應用程式彈性。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

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

onrejectionhandled = (event) => { }

事件型別

一個 PromiseRejectionEvent。繼承自 Event

Event PromiseRejectionEvent

事件屬性

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}`);
});

規範

規範
HTML
# 未處理的 Promise 拒絕
HTML
# 處理程式-window-onrejectionhandled

瀏覽器相容性

另見