In der Funktion A wird die Funktion B nun mehrmals hintereinander ausgeführt. In jedem Durchlauf von Funktion B wird eine (globale) Variable verändert die für die nächste Ausführung von Funktion B wichtig ist.
Nur am Rande: Globale Variablen sind böse. Vermeide sie so gut es geht (in JavaScript nicht immer möglich).
Eigentlich sollte das ja kein Problem sein, allerdings ist Funktion B sehr schwerfällig da sie Daten über eine API von einem anderem Server abruft. Es sieht für mich aber so aus als ob die Funktion A die Bs eins nach dem anderem aufruft ohne daß die vorhergehenden Bs schon abgeschlossen ist. Zumindest lässt mich das das loggen der Variable inner- und ausserhalb der Funktion B vermuten.
Wie geschieht das genau (in Funktion B)? Wenn es ein AJAX-Request ist, dann kann das durchaus sein.
Kann so etws überhaupt sein? Und wenn ja, wie kann ich das Script dazu bringen erst fortzufahren, wenn die vorhergehende Funktion gänzlich abgeschlossen ist?
Wenn meine Vermutung (AJAX) zutrifft, müsstest du das über den Handler machen, der ausgeführt wird, sobald sich der Status des entsprechenden XMLHttpRequest-Objekts ändert.
Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|