Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

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

11111

Вопрос проверяет понимание принципов работы с асинхронным кодом в JavaScript, что необходимо для написания эффективных и неблокирующих веб-приложений.

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

Ключевые слова async и await в JavaScript используются для работы с асинхронными операциями в синхронном стиле. Они упрощают чтение и написание кода, основанного на промисах. Функция, объявленная с async, всегда возвращает промис, а await приостанавливает выполнение функции до разрешения промиса. Это помогает избежать "callback hell" и делает обработку ошибок более удобной через try/catch.

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

Ключевые слова async и await представляют собой синтаксический сахар над промисами в JavaScript, введённый в ES2017. Они позволяют писать асинхронный код так, как если бы он был синхронным, что значительно улучшает читаемость и поддерживаемость.

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

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

Пример использования

Рассмотрим простой пример получения данных с сервера:

async function fetchUserData(userId) {
  try {
    const response = await fetch(`https://api.example.com/users/${userId}`);
    if (!response.ok) {
      throw new Error('Ошибка сети');
    }
    const user = await response.json();
    console.log(user);
    return user;
  } catch (error) {
    console.error('Не удалось загрузить данные:', error);
  }
}

// Вызов функции
fetchUserData(1).then(user => console.log('Пользователь получен:', user));

Где применяется

Этот подход широко используется в современных веб-приложениях для:

  • Выполнения HTTP-запросов к API.
  • Работы с базами данных в Node.js.
  • Чтения файлов в среде Node.js.
  • Любых операций, которые требуют ожидания, таких как таймеры или взаимодействие с пользовательским вводом.

Вывод: Используйте async/await для упрощения асинхронного кода, особенно когда нужно последовательно выполнять несколько зависимых операций или когда важна читаемость и удобство обработки ошибок.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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

Уровень

  • Рейтинг:

    5

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

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

#async

#await

#Promise

#asynchronous JavaScript

#event loop

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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