Spec-Zone.ru › Web APIs

WorkerGlobalScope: событие unhandledrejection

Примечание: Эта функция доступна только в Веб-воркерах.

Событие unhandledrejection отправляется в глобальную область видимости (обычно WorkerGlobalScope) скрипта, когда Promise, у которого нет обработчика отклонения, отклоняется.

Это полезно для отладки и для предоставления обработки ошибок по умолчанию для непредвиденных ситуаций.

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или задайте свойство обработчика событий.

self.addEventListener("unhandledrejection", (event) => {});
self.onunhandledrejection = (event) => {};

Тип события

A PromiseRejectionEvent. Наследуется от Event.

Событие PromiseRejectionEvent

Свойства события

PromiseRejectionEvent.promise Только для чтения

JavaScript Promise, который был отклонен.

PromiseRejectionEvent.reason Только для чтения

Значение или Object, указывающее, почему обещание было отклонено, как передано в Promise.reject().

Примеры

Базовая регистрация ошибок

В этом примере информация об отклонении обещания без обработки выводится в консоль.

self.addEventListener("unhandledrejection", (event) => {
  console.warn(`UNHANDLED PROMISE REJECTION: ${event.reason}`);
});

Также можно использовать свойство обработчика событий onunhandledrejection для настройки обработчика событий:

self.onunhandledrejection = (event) => {
  console.warn(`UNHANDLED PROMISE REJECTION: ${event.reason}`);
};

Предотвращение обработки по умолчанию

Многие среды (например, Node.js) по умолчанию сообщают об отклонениях необработанных обещаний в консоль. Можно предотвратить это, добавив обработчик для событий unhandledrejection, который — помимо других задач, которые вы хотите выполнить — вызывает preventDefault() для отмены события, предотвращая его распространение для обработки кодом регистрации среды выполнения. Это работает, потому что unhandledrejection является отменяемым.

self.addEventListener("unhandledrejection", (event) => {
  // code for handling the unhandled rejection
  // …

  // Prevent the default handling (such as outputting the
  // error to the console)

  event.preventDefault();
});

Спецификации

Спецификация
HTML
# handler-workerglobalscope-onunhandledrejection

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
unhandledrejection_event 49 79 69 36 11 49 79 36 11 5.0 49

См. также

  • События отклонения обещаний
  • PromiseRejectionEvent
  • Promise
  • rejectionhandled событие

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope/unhandledrejection_event

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API