Почему async-функция возвращает Promise, если вызвать её без await?

Async-функция в JavaScript всегда возвращает Promise, даже если её вызвать без await, потому что async-функция по сути оборачивает возвращаемое значение в Promise. Это позволяет работать с асинхронным кодом единообразно.

Короткий ответ

Что ответить на собеседовании

Async-функция в JavaScript всегда возвращает Promise, даже если её вызвать без await, потому что async-функция по сути оборачивает возвращаемое значение в Promise. Это позволяет работать с асинхронным кодом единообразно.

Подробный разбор

Ответ с пояснениями

Async-функция в JavaScript всегда возвращает Promise, даже если её вызвать без await, потому что async-функция по сути оборачивает возвращаемое значение в Promise. Это позволяет работать с асинхронным кодом единообразно.

Например:

async function foo() {
  return 42;
}

const result = foo();
console.log(result); // Promise {<fulfilled>: 42}

Здесь foo() возвращает Promise, который разрешится значением 42. Если вызвать с await, то можно получить непосредственно значение:

async function bar() {
  const value = await foo();
  console.log(value); // 42
}
bar();

Таким образом, async-функции упрощают работу с асинхронностью, гарантируя, что результат всегда будет в виде Promise.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее