A вызывается внутри B, B — внутри C. A работает две секунды и выбрасывает ошибку. Где она будет поймана?

Место обработки зависит от механизма ошибки, а не от двух секунд ожидания: синхронный throw идёт по стеку, отказ Promise — по цепочке ожидания.

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

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

Место обработки зависит от механизма ошибки, а не от двух секунд ожидания: синхронный throw идёт по стеку, отказ Promise — по цепочке ожидания.

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

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

Место обработки зависит от механизма ошибки, а не от двух секунд ожидания: синхронный throw идёт по стеку, отказ Promise — по цепочке ожидания.

Ближайший try/catch поймает синхронный вызов A через B и C. Для async A нужен await внутри try либо catch у возвращённого Promise; B должна не терять эту цепочку. Throw в отдельном callback таймера не поймается уже завершившимся внешним try/catch.

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

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

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

Подробнее