Разница между async и await заключается в их назначении при работе с асинхронными операциями в JavaScript:
async — это модификатор функции, который указывает на то, что функция является асинхронной. Асинхронная функция всегда возвращает Promise, даже если явно не возвращает его или возвращает не-Promise значение. Это значение будет обёрнуто в разрешенный Promise.await — это оператор, который может использоваться только внутри async функции. Он приостанавливает выполнение async функции до тех пор, пока Promise, к которому он применяется, не будет разрешен или отклонен. После разрешения Promise, оператор await возвращает его разрешенное значение. Если Promise отклонен, await выбрасывает ошибку.Проще говоря, async определяет, что функция может использовать await, а await позволяет "дождаться" результата асинхронной операции внутри такой функции, делая асинхронный код выглядящим и ведущим себя как синхронный.
javascript
Без async и await пришлось бы использовать .then() для обработки промисов:
javascript
Сравнение:
| Характеристика | async | await |
|---|---|---|
| Назначение | Объявляет функцию асинхронной | Приостанавливает выполнение до разрешения Promise |
| Область | Перед объявлением функции | Только внутри async функции |
| Возвращает | Promise | Разрешенное значение Promise (или выбрасывает ошибку) |