Ответ
Асинхронная функция всегда возвращает промис. Даже если она возвращает обычное значение, оно автоматически оборачивается в промис. Если функция выбрасывает ошибку, возвращается отклонённый промис.
Пример:
async function foo() {
return 42;
}
foo().then(console.log); // 42
Если используется throw:
async function bar() {
throw new Error('Oops');
}
bar().catch(console.error); // Error: Oops
Ключевые моменты:
- Возвращаемое значение всегда Promise
awaitможно использовать только внутри async-функций- Можно использовать try/catch для обработки ошибок