Назад к задачам
Junior — Senior
10

Промис‑обёртка для функции аутентификации

Компании, где спрашивали:

ЯндексЯндекс
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

В проекте присутствует асинхронная функция asyncAuth, которая получает колбэк. В этом колбэке могут быть переданы ошибка (первый параметр) и данные, полученные от сервера (второй параметр). Требуется реализовать функцию‑обёртку auth, которая будет вызывать asyncAuth, но вместо колбэка возвращать объект Promise.

 import asyncAuth from '~';

/**
  функция `asyncAuth(callback)` принимает callback, в который может
  быть передана ошибка (перемк аргументом) и данные
  с буксида (вторая аргументом).
  asyncAuth(error, data) => {});
  *
  Вам нужно реализовать функцию `auth()`,
  которая вызывает `asyncAuth()`, но возвращает Promise.
  *
  @returns (Promise)
  */
function auth() {
    asyncAuth((error, data) => {});
}

/**
  функция `tryAuth()` использует `auth()` и, в случае ошибки,
  совершает N дополнительные попытки.
  в случае, если все попытки провалились - вернуть последнюю ошибку
  *
  @returns (Promise)
  */
function tryAuth(n) {
}

Задача подразумевает создание промиса‑обёртки и добавление логики повторных попыток при неудаче, при этом в случае полного провала необходимо вернуть последнюю полученную ошибку.