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.