Junior
Wozu dient Promise.all?
sobes.tech KI
Antwort von AI
Promise.all akzeptiert ein iterierbares Objekt von Versprechen (z.B. ein Array) und gibt ein neues Versprechen zurück. Dieses neue Versprechen wird erfüllt, wenn alle übergebenen Versprechen erfolgreich erfüllt werden. Das Ergebnis ist ein Array von Werten, die den Ergebnissen jedes der übergebenen Versprechen entsprechen, in der gleichen Reihenfolge.
Wenn mindestens eines der übergebenen Versprechen abgelehnt wird, dann wird Promise.all sofort abgelehnt mit dem Grund der Ablehnung des ersten abgelehnten Versprechens.
Anwendungen:
- Gleichzeitige Ausführung mehrerer asynchroner Operationen, die voneinander unabhängig sind.
- Warten auf den Abschluss einer Reihe von Operationen, bevor man zum nächsten Schritt übergeht.
Beispiel:
async function fetchData() {
const urls = [
'https://api.example.com/data1',
'https://api.example.com/data2',
'https://api.example.com/data3',
];
try {
// Daten gleichzeitig von mehreren URLs laden
const responses = await Promise.all(urls.map(url => fetch(url)));
// Erfolg jeder Antwort überprüfen
for (const response of responses) {
if (!response.ok) {
// Wenn eine Antwort nicht erfolgreich ist, Fehler werfen
throw new Error(`HTTP-Fehler! Status: ${response.status}`);
}
}
// Alle Antworten in JSON parsen
const jsonData = await Promise.all(responses.map(response => response.json()));
// jsonData ist jetzt ein Array der Ergebnisse aller Anfragen
console.log(jsonData);
} catch (error) {
// Fehler behandeln, wenn eine der Promises abgelehnt wurde (Fetch oder JSON.parse)
console.error('Fehler beim Abrufen der Daten:', error);
}
}
fetchData();