Sobes.tech
Middle+

/** * Az `asyncAuth(callback)` függvény egy callback-et fogad, amelybe * hibát (első argumentumként) és adatokat * a backendből (második argumentumként) lehet átadni. * asyncAuth((error, data) => {}); * * Implementálnod kell az `auth()` függvényt, * amely meghívja az `asyncAuth()`-ot, de Promise-t ad vissza. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * A `tryAuth()` függvény az `auth()`-ot használja, és hibát esetén * N további próbálkozást tesz. * Ha mindegyik kudarcot vall, visszaadja az utolsó hibát. * * @returns {Promise} */ function tryAuth(n) { }

sobes.tech MI

Válasz az MI-től

A tryAuth függvénynek hívnia kell az auth()-ot, és hiba esetén N alkalommal meg kell próbálnia újra. Ha minden próbálkozás sikertelen, vissza kell adnia az utolsó hibát. Íme egy példa az async/await használatával:

async function tryAuth(n) {
  let lastError;
  for (let i = 0; i < n; i++) {
    try {
      const data = await auth();
      return data; // Sikeres eredmény
    } catch (error) {
      lastError = error; // Hiba mentése
    }
  }
  throw lastError; // Minden próbálkozás sikertelen
}

Ha nem szeretné használni az async/await-et, akkor promisesorozattal is megvalósítható, de az async/await olvashatóbbá teszi a kódot.