Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Специализация

Python Backend Developer

Java Backend Developer

Node.js Backend Developer

Golang Backend Developer

React Frontend Developer

Посмотреть все

Выберите навыки

React

React

JavaScript

JavaScript

Git

Git

Redux

Redux

Webpack

Webpack

Посмотреть все

Сложность

1-3

4-6

7-8

9-10

Рейтинг вопросов

1

2

3

4

5

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

Вопросы React Frontend Developer


Для чего нужны Async/await?

async/await — это синтаксис, который упрощает работу с промисами, делая асинхронный код более похожим на синхронный. Функция с ключевым словом async всегда возвращает промис, а await приостанавливает выполнение функции до получения результата промиса. Это делает код более читаемым и упрощает обработку ошибок.

Подробнее

Как обработать ошибку в промисах без catch, используя только then?

Второй аргумент then — это аналог catch:

promise.then(
  result => console.log(result),
  error => console.error(error) // Обработка ошибки
);
Подробнее

Почему async/await вместо Promises?

async/await делает асинхронный код:

  1. Читаемым (похож на синхронный).

  2. Удобным для отладки (стек вызовов не «разрывается»).

  3. Лёгким в обработке ошибок (через try/catch).

Подробнее

В каком порядке выполняются setTimeout и Promise.then?

Promise.then всегда выполняется раньше, чем setTimeout, даже если таймер имеет задержку 0. Это происходит потому, что then попадает в очередь microtasks, а setTimeout — в очередь macrotasks. После завершения синхронного кода event loop сначала очищает очередь microtasks, и только потом берёт следующую macrotask.

Подробнее

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

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

Подробнее

В каком порядке выполняются then, catch и finally у Promise

Можно ли выбросить ошибку внутри then и как она будет обработана

Почему then и finally выполняются после синхронного кода?

Почему Promise.then попадает в очередь microtasks?

Когда выполняется Promise.then относительно Event Loop?

  • Рейтинг:

    5

  • Сложность:

    8

then вызывается при успешном выполнении Promise, catch — при ошибке, а finally — всегда, независимо от результата. finally выполняется после then или catch, но не меняет значение, если сам не выбрасывает ошибку. Все эти колбэки выполняются как микротаски. Порядок строго следует цепочке.

Подробнее
  • Рейтинг:

    5

  • Сложность:

    7

Да, внутри then можно выбросить ошибку с помощью throw. Такая ошибка автоматически превращает Promise в rejected. Она будет поймана ближайшим catch ниже по цепочке. По сути, throw внутри then эквивалентен return Promise.reject(error).

Подробнее
  • Рейтинг:

    5

  • Сложность:

    8

then и finally выполняются после синхронного кода, потому что они ставятся в очередь микрозадач. JavaScript сначала выполняет весь синхронный код в текущем стеке вызовов. Только после этого event loop начинает обрабатывать микрозадачи. Поэтому обработчики промисов всегда выполняются “чуть позже”.

Подробнее
  • Рейтинг:

    5

  • Сложность:

    9

Promise.then попадает в microtask queue, чтобы выполняться сразу после текущего синхронного кода. Это даёт более высокий приоритет по сравнению с macrotasks. Такой механизм обеспечивает предсказуемость и согласованность асинхронного поведения. Он позволяет Promise работать быстрее, чем таймеры. Это важная часть спецификации JavaScript.

Подробнее
  • Рейтинг:

    4

  • Сложность:

    5

Обработчик, переданный в Promise.then, является микрозадачей. Он помещается в очередь микрозадач после того, как промис переходит в состояние 'выполнено' (fulfilled) или 'отклонено' (rejected). Event Loop выполняет все микрозадачи из этой очереди после завершения текущей синхронной задачи (макрозадачи) и перед тем, как взять следующую макрозадачу (например, обработчик события или setTimeout). Это гарантирует, что микрозадачи имеют приоритет над макрозадачами.
Подробнее
  • Рейтинг:

    4

  • Сложность:

    4

  • Рейтинг:

    3

  • Сложность:

    6

  • Рейтинг:

    2

  • Сложность:

    6

  • Рейтинг:

    5

  • Сложность:

    6

  • Рейтинг:

    5

  • Сложность:

    5