Ctrl K
Frontend · Senior · Код

Напишите функцию retry. Она принимает асинхронную функцию и опции: число попыток, базовую задержку и AbortSignal, вызывает функцию и при ошибке повторяет её с экспоненциально растущей задержкой. Возвращает промис с первым успешным результатом или с последней ошибкой.

~15 мин голосом

Как подойти

Проверяют, умеете ли вы написать надёжную асинхронную утилиту продакшен-уровня. Важны корректный цикл попыток, экспоненциальный backoff с джиттером и потолком, честная отмена через AbortSignal без утечек таймеров и слушателей, фильтрация неповторяемых ошибок, а также умение уточнить требования и рассказать план до того, как писать код.

Встречал этот вопрос на настоящем собесе?
Ответов0
Средний балл—
Сильных—
Тренировали0
Темы
Похожие вопросыНапишите функцию memoizeAsync. Она принимает асинхронную функцию от строкового ключа и время жизни кэша в миллисекундах и возвращает обёртку: повторный вызов с тем же ключом не ходит в сеть, параллельные вызовы делят один запрос, а ошибки не кэшируются. SeniorЕсть поставщики цен, у каждого метод price принимает артикул и асинхронно возвращает CompletableFuture с ценой. Напиши метод bestPrice, который принимает артикул и список поставщиков, опрашивает всех параллельно и возвращает CompletableFuture с минимальной ценой: упавших и не ответивших за две секунды пропускаем, а если цены не дал никто, результат завершается ошибкой. Senior

Ответь голосом

Интервьюер задаст этот вопрос и послушает. Думай вслух, проси подсказку, если нужно. Закончил — пауза или «Я ответил», через минуту здесь балл и какие пункты закрыты.

Войти, чтобы ответить

Лучше в наушниках · ~15 мин