Asynchronous Funktion Inno for Loops in javaScript
Javascripts asynchronen Natur können Herausforderungen stellen, wenn sie als mychrone Funktionen innerhalb von Loops anrufen. Betrachten Sie den folgenden Code:
for(var i = 0; iDas Problem liegt in der asynchronen Rückruffunktion, die nach Abschluss der für die für die für die Schleife abgeschlossene Ausführung möglicherweise ausgeführt wird. Folglich wird do_Something (i) immer auf die endgültige Iteration der Schleife verweisen. x}) (i))
Dieser Ansatz schlägt jedoch auch fehl, weil die Funktion sofort ausgeführt wird, was zu demselben Problem führt.
Lösung unter Verwendung von foreach
do_something((function(x){return x})(i))list.foreach (Funktion (ListItem, Index) { mc_cli.get (ListItem, Funktion (Err, Antwort) { Do_Something (Index); }); });
Durch die Verwendung von foreach haben die Rückruffunktionen jetzt Zugriff auf den richtigen Indexwert für jede Iteration, wobei die Ausgabe des falschen Index gelöst wird, das in der Funktion do_Something verwiesen wird.
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