SobesLab логотип SobesLab

Ответ

Любая функция, объявленная с ключевым словом `async` перед её определением, всегда возвращает Promise. Если в теле async-функции вернуть обычное значение (не промис), оно автоматически оборачивается в resolved Promise. Если функция выбрасывает исключение или происходит необработанная ошибка, возвращаемый промис будет отклонён с этой ошибкой. Например: `async function f() { return 42; }` возвращает Promise, который сразу resolve-ится со значением 42. Аналогично, `return Promise.resolve(42)` или просто `return 42` внутри async-функции – эквивалентны. Благодаря этому async/await синтаксически выглядит как обычный return/throw, но всегда работает через промисы.