Junior — Middle
Was ist der Unterschied zwischen den Funktionen Promise.all und Promise.any bei der Verarbeitung von Promises?
sobes.tech KI
Antwort von AI
Promise.all nimmt ein Array von Versprechen und gibt ein neues Versprechen zurück, das:
- aufgelöst wird, wenn alle Versprechen im Array erfolgreich abgeschlossen sind, wobei ein Array der Ergebnisse in der gleichen Reihenfolge zurückgegeben wird;
- abgelehnt wird, wenn mindestens eines der Versprechen abgelehnt wird, sofort mit dem Fehler dieses Versprechens.
Promise.any nimmt ein Array von Versprechen und gibt ein Versprechen zurück, das:
- aufgelöst wird, sobald eines der Versprechen erfolgreich abgeschlossen wird, wobei das Ergebnis dieses Versprechens zurückgegeben wird;
- abgelehnt wird, wenn alle Versprechen abgelehnt werden, wobei ein AggregateError mit den Fehlern aller Versprechen zurückgegeben wird.
Beispiel:
const p1 = Promise.reject('Fehler 1');
const p2 = Promise.resolve('Erfolg 2');
const p3 = Promise.resolve('Erfolg 3');
Promise.all([p1, p2, p3])
.then(console.log) // wird nicht aufgerufen
.catch(console.error); // zeigt 'Fehler 1'
Promise.any([p1, p2, p3])
.then(console.log) // zeigt 'Erfolg 2'
.catch(console.error);