Я сидел сегодня, слушая урок Javascript, и они рассказывали о том, чего я раньше не видел и чего я не до конца понимаю. Я постараюсь воспроизвести как можно лучше из памяти
Вместо использования catch
Обещания для обработки ошибок, к которому я привык, учитель использовал try...catch
, обернутый вокруг Обещания и его then
s. Когда я спросил его, почему он это сделал, он сказал, что это должно быть «синхронно». То есть вместо следующего формата (я использую псевдокод), к которому я привык
someLibrary.someFunctionThatReturnsAPromise
.then(() => something)
.then(() => somethingElse)
.catch(err => reportError)
он сделал это таким образом
try {
someLibrary.someFunctionThatReturnsAPromise
.then(() => something)
.then(() => somethingElse)
}
catch(err) {
reportError
}
Какая разница между этими двумя способами обнаружения ошибки?
Как упаковка Promise, которая является асинхронной, сообщает об ошибках синхронно?
Спасибо за любые идеи!