update promises
This commit is contained in:
19
docs/javascript/08-promises/06-acync-await.md
Normal file
19
docs/javascript/08-promises/06-acync-await.md
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
sidebar_position: 6
|
||||
---
|
||||
|
||||
# Async/await
|
||||
|
||||
По сути, это просто «синтаксический сахар» для получения результата промиса, более наглядный, чем `promise.then`.
|
||||
|
||||
Ключевое слово `async` перед объявлением функции:
|
||||
1. Обязывает её всегда возвращать промис.
|
||||
2. Позволяет использовать await в теле этой функции.
|
||||
|
||||
Ключевое слово `await` перед промисом заставит JavaScript дождаться его выполнения, после чего:
|
||||
1. Если промис завершается с ошибкой, будет сгенерировано исключение, как если бы на этом месте находилось `throw`.
|
||||
2. Иначе вернётся результат промиса.
|
||||
|
||||
Вместе они предоставляют отличный каркас для написания асинхронного кода. Такой код легко и писать, и читать.
|
||||
|
||||
Хотя при работе с `async/await` можно обходиться без `promise.then/catch`, иногда всё-таки приходится использовать эти методы (на верхнем уровне вложенности, например). Также `await` отлично работает в сочетании с `Promise.all`, если необходимо выполнить несколько задач параллельно.
|
||||
Reference in New Issue
Block a user