Invocation de la fonction asynchrone à l'intérieur pour les boucles dans javascript
javascript de la nature asynchrone peut poser des défis lors de l'invoquer des fonctions asynchrones à l'intérieur des boucles. Considérez le code suivant:
for(var i = 0; iLe problème réside dans la fonction de rappel asynchrone, qui peut s'exécuter une fois la boucle FOR terminée. Par conséquent, do_something (i) fera toujours référence à l'itération finale de la boucle. x}) (i))
Cependant, cette approche échoue également parce que la fonction s'exécute immédiatement, résultant en le même problème.
La solution à l'aide de ForEach
do_something((function(x){return x})(i))list.ForEach (function (listItem, index) { mc_cli.get (listItem, function (err, réponse) { do_something (index); }); });
En utilisant ForEach, les fonctions de rappel ont désormais accès à la valeur d'index correcte pour chaque itération, en résolvant le problème de l'index incorrect référencé dans la fonction do_something.
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