Почему событие не может поймать ошибку?
window.addEventListener('unhandledrejection', function(event) {console.log
console.log(event.promise);
console.log(event.reason);
});
new Promise(function(resolve, reject) {
setTimeout(() => {
throw new Error("Whoops!");
}, 1000);
}).catch(console.log);
Ответы (1 шт):
Автор решения: Dmitry
→ Ссылка
Обработчик события unhandledrejection сработает, когда Promise завершится с ошибкой и на ошибку не установлен обработчик.
В вашем примере вам нужно вызвать метод reject() внутри промиса и убрать обработчик ошибки, установленный с помощью .catch(), тогда сработает обработчик события unhandledrejection.
window.addEventListener('unhandledrejection', function(event) {
console.log(event.promise);
console.log(event.reason);
});
new Promise(function(resolve, reject) {
setTimeout(() => {
reject(new Error("Whoops!"));
}, 1000);
});