05. Error Handling
Существует несколько подходов к обработкам ошибок внутри асинхронных функций:
try-catch
,Использовать инструментарий Promise (
p.then()
,p.catch()
,Promise.try()
),Использовать утилиты, что бы в результате
await
вызова возвращать[data, err]
.
try-catch
try-catch
Каждый вызов await
, который может выбрасывать исключение необходимо оборачивать в catch
:
Error handling with Promises
При вызове await P
можно навешивать различные обработчики на P
и тем самым использовать семантику then()
и catch()
вместе с await
:
Structured return value
Можно перенять подход свойственный go где в результате вызова операции возвращается data, err
написав функцию:
Тогда обработка асинхронного кода будет иметь вид:
У этого подхода есть преимущество в том, что на деструкции можно использовать значения по умолчанию:
Last updated
Was this helpful?