> Какой тип данных должна возвращать функция retry в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Яндекс

Стек: JavaScript

> Пример ответа

Функция retry в JavaScript должна возвращать Promise. Это необходимо, потому что повторные попытки выполнения операции (например, HTTP-запроса или вызова асинхронной функции) по своей природе асинхронны - мы не знаем, когда завершится каждая попытка и сколько их потребуется.

Типичная реализация retry принимает асинхронную функцию-замыкание и количество попыток, а возвращает Promise, который:

  • разрешается (resolve) значением, полученным от успешного выполнения функции;
  • отклоняется (reject) с последней ошибкой, если все попытки исчерпаны.

Пример:

JAVASCRIPT
function retry(asyncFn, retries = 3) {
return new Promise((resolve, reject) => {
const attempt = (n) => {
asyncFn()
.then(resolve)
.catch((err) => {
if (n === 0) reject(err);
else attempt(n - 1);
});
};
attempt(retries);
});
}

Возврат Promise гарантирует совместимость с async/await и цепочками .then(), что делает функцию гибкой и удобной для использования в современном JavaScript.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью