javascript / intermediate
Snippet
Robuste Async-Steuerung mit Promise.allSettled
Im Gegensatz zu Promise.all wartet Promise.allSettled darauf, dass alle Promises abgeschlossen sind (entweder erfüllt oder abgelehnt), was es ermöglicht, Teilerfolge in einer Reihe von Operationen zu verarbeiten.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
async function fetchData(urls) {const promises = urls.map(url => fetch(url));const results = await Promise.allSettled(promises);results.forEach((result, index) => {if (result.status === 'fulfilled') {console.log(`Success ${urls[index]}:`, result.value);} else {console.error(`Error ${urls[index]}:`, result.reason);}});}
Erklärung
1
await Promise.allSettled(promises);
Wartet auf alle asynchronen Operationen, unabhängig davon, ob sie erfolgreich sind oder fehlschlagen.
2
result.status === 'fulfilled'
Prüft jedes Ergebnis, um den Ausgang der jeweiligen spezifischen Operation zu bestimmen.