21 lines
1.7 KiB
Markdown
21 lines
1.7 KiB
Markdown
---
|
||
sidebar_position: 6
|
||
---
|
||
|
||
# Async/await
|
||
|
||
По сути, это просто «синтаксический сахар» для получения результата промиса, более наглядный, чем `promise.then`.
|
||
|
||
Ключевое слово `async` перед объявлением функции:
|
||
1. Обязывает её всегда возвращать промис.
|
||
2. Позволяет использовать await в теле этой функции.
|
||
|
||
Ключевое слово `await` перед промисом заставит JavaScript дождаться его выполнения, после чего:
|
||
1. Если промис завершается с ошибкой, будет сгенерировано исключение, как если бы на этом месте находилось `throw`.
|
||
2. Иначе вернётся результат промиса.
|
||
|
||
Вместе они предоставляют отличный каркас для написания асинхронного кода. Такой код легко и писать, и читать.
|
||
|
||
Хотя при работе с `async/await` можно обходиться без `promise.then/catch`, иногда всё-таки приходится использовать эти методы (на верхнем уровне вложенности, например). Также `await` отлично работает в сочетании с `Promise.all`, если необходимо выполнить несколько задач параллельно.
|
||
|
||
🚀 **Источник: [https://learn.javascript.ru/async-await](https://learn.javascript.ru/async-await)** |