@nurdus

Как пробросить исключение из setInterval?

Добрый день.
Собственно код (https://jsfiddle.net/7n28Ltzf/):
try {
  setInterval(() => {
    try {
      throw 'big error';
    } catch (err) {
      console.log('1', err);
      throw err; // 1: пытаемся пробросить
    }
  })
} catch (err) {
  console.log('2', err); // 2: но до сюда не доходит
}

В результате получаю: "uncaught exception: big error"
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
edli007
@edli007
full stack, team lead
Никак, в таком варианте, попробуйте промис.
return new Promise((res, rej)) => {
  setInterval(() => {
    if( ... ) {  //можно любуюю конструкцию, главное rej() выздать
        rej('big error');
        return;
    }
    res('все ок');
  });
}).catch(err => {
  console.log('2', err); // 2: сюда, доходит
}).then((payload) => {
   console.log(payload); //'все ок'
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы