Heim  >  Artikel  >  Web-Frontend  >  Was sind die verschiedenen Wiederholungsmuster für versprechungsbasierte Vorgänge in JavaScript?

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

Susan Sarandon
Susan SarandonOriginal
2024-10-22 18:58:03776Durchsuche

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 notwendig, Vorgänge mehrmals zu wiederholen oder bis eine bestimmte Bedingung erfüllt ist.

1. Wiederholen, bis das Versprechen aufgelöst wird

Um einen Vorgang kontinuierlich zu wiederholen, bis er aufgelö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:

<code class="js">for (var i = 0; i < maxRetries; i++) {
  p = p.catch(attempt).catch(rejectDelay);
}</code>

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:

<code class="js">for (var i = 0; i < maxRetries; i++) {
  p = p.catch(attempt).then(test);
}</code>

3. Speichereffizientes dynamisches Wiederholungsmuster

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

<code class="js">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;
}</code>

Hinweis :

  • Der .catch()-Kettenansatz für Wiederholungsversuche unterliegt Einschränkungen hinsichtlich der maximalen Anzahl von Versuchen und dem Speicherverbrauch.
  • Für komplexe Wiederholungsszenarien wird die Verwendung empfohlen rekursive Lösungen oder speziell entwickelte Wiederholungsbibliotheken.

Das obige ist der detaillierte Inhalt vonWas sind die verschiedenen Wiederholungsmuster für versprechungsbasierte Vorgänge in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn