Promise представляет собой объект, который отражает конечное завершение или отказ асинхронной операции. Он управляет асинхронными потоками с помощью колбеков .then() и .catch().
async/await - это синтаксический сахар над Promise, который делает асинхронный код более читаемым и похожим на синхронный. Функция, помеченная как async, всегда возвращает Promise. Оператор await можно использовать только внутри async функции и он приостанавливает выполнение функции до тех пор, пока Promise не будет выполнен или отклонен, после чего возвращает его результат или генерирует исключение.
| Аспект | Promise | Async/Await |
|---|---|---|
| Читаемость | Требует цепочек .then() и .catch() | Похож на синхронный код, линейный поток |
| Обработка ошибок | Использует .catch() | Использует блоки try...catch |
| Поток выполнения | Управляется колбеками | Приостанавливает/возобновляет функцию |
| Возвращаемое значение | Promise | Promise (для async функции) или результат Promise (для await) |
| Зависимость | Самостоятельный механизм | Построен на основе Promise |
Пример с Promise:
javascript
Пример с async/await:
javascript