WorkerGlobalScope: rejectionhandled 事件

Baseline 已廣泛支援

此特性已經十分成熟,可在許多裝置和瀏覽器版本上使用。自 2020 年 7 月以來,它已在各大瀏覽器中可用。

注意:此功能僅在 Web Workers 中可用。

當一個被拒絕的 Promise 被延遲處理時(即,在拒絕導致 unhandledrejection 事件發生後才為其附加處理程式),該 rejectionhandled 事件會被髮送到指令碼的全域性作用域(通常是 WorkerGlobalScope)。

這可以與 unhandledrejection 事件結合使用,用於除錯和提高應用程式的整體容錯能力。unhandledrejection 事件在 Promise 被拒絕但當時沒有相應的處理程式時傳送。

語法

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

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

onrejectionhandled = (event) => { }

事件型別

一個 PromiseRejectionEvent。繼承自 Event

Event PromiseRejectionEvent

事件屬性

PromiseRejectionEvent.promise 只讀

被拒絕的 Promise

PromiseRejectionEvent.reason 只讀

一個值或 Object,指示 Promise 被拒絕的原因,與傳遞給 Promise.reject() 的值相同。

示例

您可以使用 rejectionhandled 事件將 Promise 的拒絕及其拒絕原因記錄到控制檯。

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

規範

規範
HTML
# handler-workerglobalscope-onrejectionhandled

瀏覽器相容性

另見