Sobes.tech
Back to tasks
Junior — Senior
30

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

Companies where asked:

ЯндексЯндекс
Get help with live coding in real time with Sobes Copilot
Task condition

В проекте есть функция 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) {
}