Хук `window.onerror` не вызывается при выдаче исключения внутри Promise - PullRequest
0 голосов
/ 29 мая 2020

Я добавил ловушку ошибок, используя window.onerror, но когда я throw внутри cb до .then из Promise, ловушка не срабатывает. Есть ли способ зажечь крючок? Я не хочу добавлять .catch

window.onerror = () => console.log('an error')

new Promise(_ => _())
  .then(() => {
    throw 'err'
  })

//the hook doesn't fire

1 Ответ

1 голос
/ 29 мая 2020

Исключение, созданное внутри обработчика .then(), автоматически перехватывается обещанием и превращает обещание в отклоненное обещание, чтобы исключение не всплывало туда, где оно могло бы быть замечено window.onerrror.

Если у вас нет обработчика для отклоненного обещания, вы должны получить событие unhandledrejection, как описано здесь .

...