> Какой тип данных должна возвращать функция retry в JavaScript (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Яндекс
Стек: JavaScript
> Пример ответа
Функция retry в JavaScript должна возвращать Promise. Это необходимо, потому что повторные попытки выполнения операции (например, HTTP-запроса или вызова асинхронной функции) по своей природе асинхронны - мы не знаем, когда завершится каждая попытка и сколько их потребуется.
Типичная реализация retry принимает асинхронную функцию-замыкание и количество попыток, а возвращает Promise, который:
- разрешается (
resolve) значением, полученным от успешного выполнения функции; - отклоняется (
reject) с последней ошибкой, если все попытки исчерпаны.
Пример:
JAVASCRIPTfunction 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.
> Похожие задачи по frontend
Как создать собственную функцию executor в Promise в JavaScript
Почему нельзя использовать Map вместо объекта для возвращаемого значения метода groupBy в JavaScript
Как использовать resolve и reject внутри callback для управления состоянием Promise в JavaScript
В чем отличие контекста в строгом режиме и без него в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью