den folgenden Code Stellen Sie sich vor, auf dem Knoten ausgeführt wird und mit lodash:Können Aufrufe in einer Schleife nach einem Funktionsaufruf nach der Schleifenerklärung ausgeführt werden?
var result = [];
_.each(someArray, function (elem) { ... result.push(newElem); });
_.each(anotherArray, function (elem) { ... result.push(newElem); });
superfunction(result);
Ist es möglich, in einem gewissen Umstand, dass superfunction
Läufe vor denen jeder() finish, was bedeutet, dass superfunction
eine halbe result
Array gefüllt bekommen würde ?
Ja, absolut. Das result.push() könnte sich im Callback einer asynchronen Methode befinden. In diesem Fall würde Superfunction ausgeführt werden, bevor einer der .push() - Aufrufe ausgeführt wird. –
Ok, aber im Fall von völlig synchronem Code auf die Funktionen, die von jedem aufgerufen werden - nur einige mathematische Berechnungen, zum Beispiel - könnte die Superfunktion aufgerufen werden, bevor die Schleifen enden? – Andre
Nein. Wenn es synchron ist, dann verlässt es nie den aktuellen Callstack und daher kann die Superfunktion erst dann ausgeführt werden, wenn alle abgeschlossen sind. –