Middle+
/** * `asyncAuth(callback)` funksiyası callback qəbul edir, ona * xəta (birinci arqument) və məlumatlar * backend-dən (ikinci arqument) keçə bilər. * asyncAuth((error, data) => {}); * * Siz `auth()` funksiyasını həyata keçirməlisiniz, * bu `asyncAuth()`-u çağırır, amma Promise qaytarır. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * `tryAuth()` funksiyası `auth()`-u istifadə edir və, xəta baş verərsə, * N əlavə cəhd edir. * Bütün cəhdlər uğursuz olarsa, son xətanı qaytarır. * * @returns {Promise} */ function tryAuth(n) { }
sobes.tech Süni İntellekt
AI-dan cavab
tryAuth funksiyası auth()-u çağırmalı və xəta baş verərsə, N dəfə təkrar etməlidir. Əgər bütün cəhdlər uğursuz olarsa, son xətanı geri qaytarmalıdır. Budur async/await istifadə edərək nümunə tətbiqi:
async function tryAuth(n) {
let lastError;
for (let i = 0; i < n; i++) {
try {
const data = await auth();
return data; // Uğurlu nəticə
} catch (error) {
lastError = error; // Xətanı yadda saxla
}
}
throw lastError; // Bütün cəhdlər uğursuz oldu
}
Əgər async/await istifadə etmək istəmirsinizsə, onu promise zənciri ilə də həyata keçirmək olar, lakin async/await kodu daha oxunaqlıdır.