Sobes.tech
Junior

Erklären Sie, was Promise.race ist und wie es in JavaScript verwendet wird.

sobes.tech KI

Antwort von AI

Promise.race akzeptiert ein iterierbares Objekt von Versprechen und gibt ein neues Versprechen zurück. Dieses neue Versprechen wird aufgelöst oder abgelehnt, sobald das erste Versprechen im iterierbaren Objekt aufgelöst oder abgelehnt wird. Das Ergebnis des neuen Versprechens ist das Ergebnis oder der Grund für die Ablehnung des ersten abgeschlossenen Versprechens.

Verwendet für:

  • Auswahl der schnellsten Antwort aus mehreren asynchronen Operationen.
  • Implementierung von Zeitüberschreitungen für asynchrone Operationen.

Beispiel für eine Zeitüberschreitung:

// Funktion, die ein Versprechen erstellt, das nach einer bestimmten Zeit abgelehnt wird
function timeout(ms) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      reject(new Error(`Timeout nach ${ms}ms`));
    }, ms);
  });
}

// Asynchrone Operation, die langsam sein kann
function fetchData() {
  return new Promise(resolve => {
    // Simulation einer langen Operation
    setTimeout(() => {
      resolve('Daten erfolgreich abgerufen');
    }, 2000); // Angenommen, diese Operation dauert 2 Sekunden
  });
}

// Verwendung von Promise.race, um eine Zeitüberschreitung zu fetchData hinzuzufügen
Promise.race([
  fetchData(),  // Unsere Operation
  timeout(1000) // Zeitüberschreitung in 1 Sekunde
])
.then(result => {
  console.log(result); // Wird ausgeführt, wenn fetchData vor der Zeitüberschreitung endet
})
.catch(error => {
  console.error(error.message); // Wird ausgeführt, wenn die Zeitüberschreitung zuerst eintritt
});