2016-07-21 4 views
0

Ich greife gerade auf eine Datenbank durch http Anfragen, aber in der Funktion unten, habe ich Probleme, wie die Anfrage abgeschlossen ist, nachdem die Daten benötigt werden.Wie warte ich, bis eine HTTP-Anfrage beendet ist, bevor ich weitermache?

ich kann nicht herausfinden, welche Aussage ich an die http erhalten muss, um es abzuschließen, bevor ich auf die for-Schleife gehe.

+0

Blick in diese Frage [Wie http Synchrone Aufruf $ mit AngularJS] (http://stackoverflow.com/questions/13088153/how-to-http-synchronous-call-with-angularjs) – jcubic

Antwort

3

Die for-Schleife muss in der successCallback (oder in einer Funktion von dort genannt) sein.

+0

Ich wollte nur schreiben das gleiche. –

0

JavaScript verwendet Rückrufe und es blockiert nicht, ich denke, Sie verwirren es mit Standard-Imperativ-Code.

Ich weiß nicht, welchen Rahmen Sie verwenden, aber hier ist Ihre Stromfluss:

  1. Hauptfunktion
  2. eine GET-Anforderung aufgerufen wird ausgegeben wird, und das Ergebnis ist ein Versprechen
  3. das Versprechen Akzeptieren Sie zwei Parameter (successCallback und errorCallback), die zwei Funktionen sind, die entweder im Erfolgsfall oder Fehler (einer der beiden, nicht beide) aufgerufen werden
  4. ERROR: sofort nach Ihre get angefordert wurde, starten Sie Ihre for-Schleife

Wie @ linus-borg wies darauf hin, die for-Schleife in der successCallback sein muss, sonst wird es unmittelbar nach der GET-Anfrage aufgerufen werden.