Junior
Ի՞նչ է նշանակում Promise.all-ը։
sobes.tech AI
Պատասխան AI-ից
Promise.all ընդունում է iterable օբյեկտ վկայագրերի (օրինակ, զանգված) և վերադարձնում է նոր վկայագիր: Այս նոր վկայագիրը կատարվում է, երբ բոլոր փոխանցված վկայագրերը հաջողությամբ կատարվեն: Նպատակը կլինի արժեքների զանգված, որոնք համապատասխան են յուրաքանչյուր փոխանցված վկայագրի արդյունքներին, նույն կարգով:
Եթե գոնե մեկը փոխանցված վկայագրերից անհաջող է, ապա Promise.all անմիջապես մերժվում է առաջին մերժված վկայագրի պատճառով:
Հայտեր:
- Միաժամանակյա կատարման մի քանի ասինխրոնային գործողություններ, որոնք չեն կախված մեկը մյուսից:
- Ապահովել, որ մի շարք գործողությունների ավարտից հետո անցնել հաջորդ քայլին:
Օրինակ:
async function fetchData() {
const urls = [
'https://api.example.com/data1',
'https://api.example.com/data2',
'https://api.example.com/data3',
];
try {
// Միաժամանակ բեռնում տվյալներ մի քանի URL-ներից
const responses = await Promise.all(urls.map(url => fetch(url)));
// Ստուգում յուրաքանչյուր պատասխան success-ությունը
for (const response of responses) {
if (!response.ok) {
// Եթե պատասխաններից մեկը չի հաջողվում, գցում ենք սխալ
throw new Error(`HTTP սխալ! կարգավիճակ: ${response.status}`);
}
}
// Բոլոր պատասխանները վերլուծում ենք JSON-ով
const jsonData = await Promise.all(responses.map(response => response.json()));
// Այժմ jsonData-ն է բոլոր հարցումների արդյունքների զանգվածը
console.log(jsonData);
} catch (error) {
// Սխալի կառավարում, եթե մի վկայագիր մերժվի (Fetch կամ JSON.parse)
console.error('Սխալ տվյալների բեռնումիս:', error);
}
}
fetchData();