> В чем разница между async function и обычной функцией в JavaScript? (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: EPAM

Стек: JavaScript

> Пример ответа

Основное различие в том, что async function всегда возвращает Promise, даже если явно вернуть примитив. Обычная функция возвращает то, что указано в return, или undefined.

JAVASCRIPT
// Обычная функция
function regular() {
return 42;
}
console.log(regular()); // 42
// async функция
async function asyncFunc() {
return 42;
}
console.log(asyncFunc()); // Promise {<fulfilled>: 42}

Внутри async функции можно использовать await, который приостанавливает выполнение до разрешения Promise. В обычной функции await вызовет синтаксическую ошибку.

JAVASCRIPT
async function fetchData() {
const response = await fetch('/api'); // работает
return response.json();
}
function regularFetch() {
const response = await fetch('/api'); // SyntaxError
}

Также async функции обрабатывают исключения через отклонённый Promise, а обычные - через throw в синхронном коде.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью