Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: async, await, promise, event loop, asynchronous

Почему промис без await не даст нужного результата при использовании внутри async-функции?

Проверяет понимание асинхронного выполнения в JavaScript и необходимости использования await для получения результата промиса внутри async-функции.

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

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

Длинный ответ

Почему промис без await не даёт нужного результата?

В JavaScript async-функции всегда возвращают Promise. Когда вы вызываете промис без await, функция не ждёт его завершения — она сразу переходит к следующей строке кода. Это связано с тем, что await приостанавливает выполнение функции до тех пор, пока промис не будет разрешён (fulfilled) или отклонён (rejected). Без await промис просто запускается, но его результат не извлекается.

Пример с await и без него

async function fetchData() {
  const data = fetch('https://api.example.com/data');
  console.log(data); // Promise {<pending>}
  // Функция не ждёт ответа
}

async function fetchDataCorrect() {
  const response = await fetch('https://api.example.com/data');
  const data = await response.json();
  console.log(data); // Фактические данные
}

Как это работает?

  • Без await: промис запускается, но управление сразу возвращается в функцию. Вы получаете объект Promise, а не его значение.
  • С await: выполнение функции приостанавливается до разрешения промиса, и результат присваивается переменной.

Где это применяется?

Это критично при работе с API, базами данных, файловой системой — везде, где нужен результат асинхронной операции. Без await код может выполняться в неправильном порядке, вызывая ошибки или undefined.

Вывод

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    5

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#async

#await

#promise

#event loop

#asynchronous

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию