files/en-us/web/api/promiserejectionevent/promise/index.md
{{APIRef("HTML DOM")}}{{AvailableInWorkers}}
The {{domxref("PromiseRejectionEvent")}} interface's
promise read-only property indicates the JavaScript
{{jsxref("Promise")}} which was rejected. You can examine the event's
{{domxref("PromiseRejectionEvent.reason")}} property to learn why the promise was
rejected.
The JavaScript {{jsxref("Promise")}} which was rejected, and whose rejection went unhandled.
This example listens for unhandled promises and, if the
{{domxref("PromiseRejectionEvent.reason", "reason")}} is an object with a
code field containing the text "Module not ready", it sets up an idle
callback that will retry the task that failed to execute correctly.
{{domxref("event.preventDefault()")}} is called to indicate that the promise has now been handled.
window.onunhandledrejection = (event) => {
if (event.reason?.code === "Module not ready") {
requestIdleCallback((deadline) => {
loadModule(event.reason.moduleName).then(performStartup);
});
event.preventDefault();
}
};
{{Specifications}}
{{Compat}}