"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment gérer les appels de fonction asynchrones dans JavaScript pour les boucles?

Comment gérer les appels de fonction asynchrones dans JavaScript pour les boucles?

Publié le 2025-03-23
Parcourir:948

How to Handle Asynchronous Function Calls within JavaScript For Loops?

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; i  

Le 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.

Dernier tutoriel Plus>

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