Modèles de nouvelle tentative pour les opérations basées sur des promesses
Les promesses offrent un moyen pratique de gérer les opérations asynchrones en JavaScript. Cependant, il est parfois nécessaire de réessayer les opérations plusieurs fois ou jusqu'à ce qu'une condition spécifique soit remplie.
1. Réessayer jusqu'à ce que la promesse soit résolue
Pour réessayer continuellement une opération jusqu'à ce qu'elle soit résolue, utilisez un délai entre les tentatives et un nombre maximum de tentatives. Ceci peut être réalisé en utilisant une boucle for et un chaînage .catch() :
<code class="js">for (var i = 0; i < maxRetries; i++) { p = p.catch(attempt).catch(rejectDelay); }</code>
2. Réessayer jusqu'à ce que la condition soit remplie
Pour réessayer une opération jusqu'à ce qu'une condition soit remplie sur le résultat, utilisez une chaîne .then() pour vérifier la condition et une chaîne .catch() pour gérer les échecs :
<code class="js">for (var i = 0; i < maxRetries; i++) { p = p.catch(attempt).then(test); }</code>
3. Modèle de nouvelle tentative dynamique économe en mémoire
Pour un mécanisme de nouvelle tentative dynamique avec des tentatives illimitées et un délai spécifié, utilisez l'approche en chaîne .catch() :
<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>
Remarque :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!