Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

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

Чем async/await отличается от .then()?

Вопрос проверяет понимание двух способов работы с Promise и умение объяснить их различия на уровне кода и читаемости.

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

async/await и .then() работают поверх Promise и дают одинаковые возможности. Разница в том, что async/await позволяет писать асинхронный код в синхронном стиле, улучшая читаемость. .then() использует цепочки колбэков и чаще приводит к вложенности. С точки зрения выполнения и производительности они эквивалентны.

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

Оба подхода решают одну и ту же задачу, но по-разному организуют код.

Определение

  • .then() — метод Promise, принимающий колбэк, который выполнится после резолва.

  • async/await — синтаксический сахар над Promise, позволяющий писать асинхронный код линейно.

Пример с .then()

fetchData()
  .then(data => process(data))
  .then(result => save(result))
  .catch(error => handleError(error));

Тот же пример с async/await

async function run() {
  try {
    const data = await fetchData();
    const result = await process(data);
    await save(result);
  } catch (error) {
    handleError(error);
  }
}

Основные отличия

  1. Читаемость

    • async/await читается сверху вниз.

    • .then() сложнее при длинных цепочках.

  2. Обработка ошибок

    • async/await использует try/catch.

    • .then() — .catch().

  3. Отладка

    • Стек вызовов проще читать с async/await.

  4. Гибкость

    • .then() удобно для коротких цепочек.

    • async/await — для сложной логики.

Вывод

Выбор между async/await и .then() — вопрос читаемости и стиля, а не возможностей или производительности.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

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

#async

#await

#promise

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