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

Обёртка над callback‑функцией, возвращающая Promise

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

ЯндексЯндекс
Получайте помощь с лайвкодингом в реальном времени с 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) {
}