Junior
40
questionbank

В чем разница между ключевыми словами async и await?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Разница между async и await заключается в их назначении при работе с асинхронными операциями в JavaScript:

  • async — это модификатор функции, который указывает на то, что функция является асинхронной. Асинхронная функция всегда возвращает Promise, даже если явно не возвращает его или возвращает не-Promise значение. Это значение будет обёрнуто в разрешенный Promise.
  • await — это оператор, который может использоваться только внутри async функции. Он приостанавливает выполнение async функции до тех пор, пока Promise, к которому он применяется, не будет разрешен или отклонен. После разрешения Promise, оператор await возвращает его разрешенное значение. Если Promise отклонен, await выбрасывает ошибку.

Проще говоря, async определяет, что функция может использовать await, а await позволяет "дождаться" результата асинхронной операции внутри такой функции, делая асинхронный код выглядящим и ведущим себя как синхронный.

javascript

Без async и await пришлось бы использовать .then() для обработки промисов:

javascript

Сравнение:

Характеристикаasyncawait
НазначениеОбъявляет функцию асинхроннойПриостанавливает выполнение до разрешения Promise
ОбластьПеред объявлением функцииТолько внутри async функции
ВозвращаетPromiseРазрешенное значение Promise (или выбрасывает ошибку)