Junior
Mit csinál a Promise.all?
sobes.tech MI
Válasz az MI-től
A Promise.all elfogad egy iterálható objektumot ígéretekkel (például egy tömböt), és egy új ígéretet ad vissza. Ez az új ígéret teljesül akkor, amikor minden átadott ígéret sikeresen teljesül. Az eredmény egy értékekből álló tömb lesz, amelyek megfelelnek az egyes átadott ígéretek eredményeinek, ugyanabban a sorrendben.
Ha legalább egy az átadott ígéretek közül elutasításra kerül, akkor a Promise.all azonnal elutasításra kerül az első elutasított ígéret okával.
Alkalmazások:
- Több aszinkron művelet egyidejű végrehajtása, amelyek nem függenek egymástól.
- Várakozás egy műveletsor befejezésére, mielőtt a következő lépésre lépne.
Példa:
async function fetchData() {
const urls = [
'https://api.example.com/data1',
'https://api.example.com/data2',
'https://api.example.com/data3',
];
try {
// Adatok egyidejű betöltése több URL-ről
const responses = await Promise.all(urls.map(url => fetch(url)));
// Minden válasz sikerességének ellenőrzése
for (const response of responses) {
if (!response.ok) {
// Ha egy válasz nem sikeres, hibát dobunk
throw new Error(`HTTP hiba! státusz: ${response.status}`);
}
}
// Minden válasz JSON-ra történő elemzése
const jsonData = await Promise.all(responses.map(response => response.json()));
// Most a jsonData egy tömb, amely az összes kérés eredményeit tartalmazza
console.log(jsonData);
} catch (error) {
// Hiba kezelése, ha valamelyik ígéret elutasításra került (Fetch vagy JSON.parse)
console.error('Hiba az adatok lekérése során:', error);
}
}
fetchData();