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() :
for (var i = 0; i 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 :
for (var i = 0; i 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() :
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;
}
Remarque :
- L'approche en chaîne .catch() pour les tentatives présente des limites concernant le nombre maximum de tentatives et la consommation de mémoire.
- Pour les scénarios de nouvelles tentatives complexes, il est recommandé d'utiliser des solutions récursives ou des bibliothèques de nouvelles tentatives spécialement conçues.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3