PromiseRejectionEvent()

PromiseRejectionEvent() コンストラクターは、新しい PromiseRejectionEvent オブジェクトを返します。これは、 JavaScript の Promise が拒否されたときに発生するイベントを表します。

プロミス拒否イベントにより、失敗したプロミスや、失敗を見逃したプロミスを検出して報告することが可能になります。また、エラーに対するグローバルハンドラーを書くことも容易になります。

PromiseRejectionEvent には 2 種類あります。 unhandledrejection は、プロミスが拒否されたが処理されなかった場合に JavaScript ランタイムによって発行されます。 rejectionhandled イベントは、プロミスが拒否されたが、拒否が拒否ハンドラーによって捕捉された場合に発行されるものです。

構文

js
new PromiseRejectionEvent(type, options)

引数

type

文字列で、イベントの名前を表します。 大文字と小文字の区別があり、ブラウザーは rejectionhandled または unhandledrejection のどちらかに設定します。

options

オブジェクトで、 Event() で定義されたプロパティに加え、以下のプロパティを持つことができます。

promise

拒否された Promise

reason

プロミスが拒否された理由を表す任意の値または Object。これは、エラーコード、エラー文字列、プロミスが拒否された状況を記述する詳細な情報を含むオブジェクトなど、何でもかまいません。

返値

引数で指定された通りに構成された、新しい PromiseRejectionEvent オブジェクトです。

この例では、文字列 "My house is on fire" を理由とするプロミス myPromise に対して新しい unhandledrejection イベントが作成されます。理由`は数字とすることもできますし、家の住所や火事の程度、緊急連絡先の電話番号など、詳細な情報を記載したオブジェクトでも構いません。

js
let myRejectionEvent = new PromiseRejectionEvent("unhandledrejection", {
  promise: myPromise,
  reason: "My house is on fire",
});

仕様書

Specification
HTML Standard
# unhandled-promise-rejections:dom-event-constructor

ブラウザーの互換性

BCD tables only load in the browser

関連情報