Junior
Was ist Promise.race?
sobes.tech KI
Antwort von AI
Promise.race — ist eine Methode, die eine neue Promise zurückgibt. Diese neue Promise wird entweder mit demselben Wert (oder Grund) aufgelöst oder abgelehnt wie die erste Promise im übergebenen iterierbaren Objekt (meistens ein Array), die abgeschlossen wurde.
Funktionsprinzipien:
- Eingang: Nimmt ein iterierbares Objekt (z.B. ein Array) von Promises an.
- Warten: Beginnt einen "Wettbewerb" zwischen allen Promises.
- Ergebnis: Sobald eine beliebige der Promises im iterierbaren Objekt abgeschlossen ist (entweder aufgelöst oder abgelehnt), endet
Promise.racesofort mit demselben Ergebnis. - Ignorieren: Die Ergebnisse aller anderen Promises, die später abgeschlossen werden, werden vollständig ignoriert.
Anwendungsbeispiel:
// Beispiel für eine Promise, die nach 1 Sekunde aufgelöst wird
const promise1 = new Promise((resolve) => setTimeout(() => resolve('Erster'), 1000));
// Beispiel für eine Promise, die nach 500 Millisekunden aufgelöst wird
const promise2 = new Promise((resolve) => setTimeout(() => resolve('Zweiter'), 500));
// Beispiel für eine Promise, die nach 300 Millisekunden abgelehnt wird
const promise3 = new Promise((_, reject) => setTimeout(() => reject(new Error('Fehler')), 300));
Promise.race([promise1, promise2, promise3])
.then((value) => {
console.log(value); // Gibt 'Fehler' aus
})
.catch((error) => {
console.error(error.message); // Behandelt den Fehler 'Fehler'
});
In diesem Beispiel wird promise3 als erstes abgeschlossen (abgelehnt), daher wird Promise.race mit einem Fehler beendet, und der .catch-Block wird ausgeführt. Wenn promise2 als erstes abgeschlossen wäre (z.B. in 10 ms), würde Promise.race mit dem Wert 'Zweiter' aufgelöst werden, und der .then-Block würde ausgeführt.
Typische Anwendungsfälle:
- Implementierung eines Timeouts für eine asynchrone Operation.
- Erhalten des Ergebnisses der schnellsten Datenquelle unter mehreren möglichen.
- Abbrechen konkurrierender asynchroner Operationen.