The PromiseRejectionEvent interface represents events which are fired when JavaScript Promises are rejected. These events are particularly useful for telemetry and debugging purposes.


Creates a PromiseRejectionEvent event with the given parameters.


Also inherits properties from its parent Event.

PromiseRejectionEvent.promise Read only
The JavaScript Promise that was rejected.
PromiseRejectionEvent.reason Read only
A value or Object indicating why the promise was rejected, as passed to Promise.reject().


This interface has no unique methods; inherits methods from its parent Event.


Fired when a JavaScript Promise is rejected but there is no rejection handler to deal with the rejection.
Fired when a JavaScript Promise is rejected, and after the rejection is handled by the promise's rejection handling code.


window.onunhandledrejection = function(e) {


Specification Status Comment
HTML Living Standard
The definition of 'PromiseRejectionEvent' in that specification.
Living Standard Initial definition.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support49 ? No1 2 No No No
PromiseRejectionEvent49 ? No1 2 No No No
promise49 ? No1 2 No No No
reason49 ? No1 2 No No No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support ? No ? No1 2 No No ?
PromiseRejectionEvent ? No ? No1 2 No No ?
promise ? No ? No1 2 No No ?
reason ? No ? No1 2 No No ?

1. Firefox doesn't yet send the unhandledrejection or understand rejectionhandled events. Completing the implementation will be addressed in bug 1362272.

2. This feature is behind the dom.promise_rejection_events.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.

See also

Document Tags and Contributors

Contributors to this page: fscholz, Sheppy, chrisdavidmills
Last updated by: fscholz,