„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Was sind die verschiedenen Wiederholungsmuster für versprechungsbasierte Vorgänge in JavaScript?

Was sind die verschiedenen Wiederholungsmuster für versprechungsbasierte Vorgänge in JavaScript?

Veröffentlicht am 10.11.2024
Durchsuche:258

What are the Different Retry Patterns for Promise-Based Operations in JavaScript?

Wiederholungsmuster für Promise-basierte Vorgänge

Promises bieten eine praktische Möglichkeit, asynchrone Vorgänge in JavaScript abzuwickeln. Manchmal ist es jedoch erforderlich, Vorgänge mehrmals zu wiederholen oder bis eine bestimmte Bedingung erfüllt ist.

1. Wiederholen, bis das Versprechen gelöst ist

Um einen Vorgang kontinuierlich zu wiederholen, bis er gelöst wird, verwenden Sie eine Verzögerung zwischen Wiederholungsversuchen und eine maximale Anzahl von Wiederholungsversuchen. Dies kann mithilfe einer for-Schleife und einer .catch()-Verkettung erreicht werden:

for (var i = 0; i 

2. Wiederholen, bis die Bedingung erfüllt ist

Um einen Vorgang zu wiederholen, bis eine Bedingung für das Ergebnis erfüllt ist, verwenden Sie eine .then()-Kette, um die Bedingung zu überprüfen, und eine .catch()-Kette, um Fehler zu behandeln:

for (var i = 0; i 

3. Speichereffizientes dynamisches Wiederholungsmuster

Für einen dynamischen Wiederholungsmechanismus mit unbegrenzten Wiederholungsversuchen und einer angegebenen Verzögerung verwenden Sie den .catch()-Kettenansatz:

var p = Promise.reject();
while (true) {
  p = p.catch(attempt).catch(rejectDelay);
  // Break out of the loop if the condition is met.
  if (conditionMet) break;
}

Hinweis:

  • Der .catch()-Kettenansatz für Wiederholungsversuche unterliegt Einschränkungen hinsichtlich der maximalen Anzahl von Versuchen und dem Speicherverbrauch.
  • Für komplexe Wiederholungsszenarien wird empfohlen, rekursive Lösungen oder speziell entwickelte Wiederholungsbibliotheken zu verwenden.
Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729587495 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3