Entwerfen von Mustern für Verheißungen Retries
In asynchroner Programmierung ist es oft nützlich, fehlgeschlagene Versprechen wiederzuerlösen, bis sie sich lösen. Hier sind drei Designmuster, um dies mit Versprechen zu erreichen:
1. Wiederieren Sie, bis Versprechen auflöst (mit Verzögerungs- und Max -Wiederholungen)
Mit diesem Muster können Sie ein Versprechen wiederholen, bis es erfolgreich auflöst, mit einer Verzögerung zwischen den einzelnen Wiederholungen. Es verwendet eine für Schleife, um eine Kette von .Catch () -Handlern zu erstellen, gefolgt von einem .then () Handler für die erfolgreiche Lösung.
var max = 5;
var p = Promise.reject();
for(var i=0; i 2. Wiederieren, bis sich die Bedingung auf das Ergebnis trifft (unverzüglich)
Mit diesem Muster können Sie ein Versprechen wiederholen, bis eine bestimmte Bedingung auf das Ergebnis erfüllt ist. Es verwendet einen ähnlichen .Catch () -Kettenansatz als vorheriges Muster, aber anstelle eines Ablehnungsdelays wird ein .then () Handler verwendet, um das Ergebnis zu testen.
var max = 5;
var p = Promise.reject();
for(var i=0; i 3. Wiederieren, bis sich die Bedingung auf das Ergebnis trifft (mit Verzögerung)
Dieses Muster kombiniert die beiden vorherigen Muster, sodass Sie ein Versprechen wiederholen können, bis eine Bedingung erfüllt ist, mit einer Verzögerung zwischen den einzelnen Wiederholungen. Es verwendet eine .catch () -Kette, um Wiederholungen und einen .then () -Handler zu verarbeiten, um den Test durchzuführen und die Verzögerung einzuführen.
var max = 5;
var p = Promise.reject();
for(var i=0; i Diese Muster bieten eine kurze und effiziente Möglichkeit, Wiederholungen mit Versprechen zu behandeln und sicherzustellen, dass Ihr Code auch dann weiter ausgeführt wird, wenn Fehler auftreten. Sie können angepasst werden, um die spezifischen Anforderungen Ihrer Anwendung zu erfüllen, Faktoren wie maximale Wiederholungen, Verzögerungsintervalle und Wiederholung von Bedingungen.
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