Обещания преобразуют необработанное отклонение из TypeError в исключение - PullRequest
0 голосов
/ 07 мая 2020

Я новичок в обещаниях. Я пытаюсь справиться с отказом от обещаний. У меня есть следующий псевдокод:

function myFunction(string) {
  // This is an intentional error -> generates TypeError.
  // I would like this to throw exception in catch handler below
  // but it does not.
  string.length();
}

somePromise...then(function() {
  myFunction("x");
}).catch(function(error) {
  // This converts the rejection to exception and is correctly handled as such.
  // But only for my thrown error (using throw in myFunction). For TypeError
  // it is an unhandled rejection. Why?
  setTimeout(function() {throw error;}, 1);
});

Код довольно понятен. В моем коде есть ошибка типа. Он генерирует необработанное отклонение, но мне бы очень хотелось, чтобы он вызвал обычное исключение, как это делают другие исключения в myFunction. Почему ошибка типа не улавливается обработчиком catch? Как я могу изменить обработчик catch для обработки этой ошибки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...