Ich habe ein Problem beim Ausführen von asynchronen Anrufe mit AngularJS (ich benutze Ionic). Ich habe Daten in $localStorage
gespeichert. Dann gibt es eine Funktion, die alle Daten an den Server sendet. Die Sache besteht darin, sie im Falle eines Fehlerrückrufs von der HTTP-POST-Anforderung zurückzulegen. Es ist mein Code:Handle mehrere Post und Daten abrufen mit angularJs
var data = $localStorage.prelevement.environement;
for (var j = 0; j < data.length; j++) {
$http.post("http://localhost:3000/prelevement/environement", data[j]).then(
function (res){},
function (err) {
$localStorage.prelevements.environement.push(data[j]);
});
}
Der Punkt ist, dass, wenn der erste Rückruf geschieht, wird die for-Schleife bereits fertig und j = data.length + 1
so bekam ich einen Fehler, da data[j]
undefined
ist.
Gibt es eine Möglichkeit, gesendete Daten in meiner Callback-Funktion zu fangen oder irgendeine Idee, damit umzugehen?
haben Sie versucht, ein $ timeout/setTimeout für jeden Anruf zu setzen? – MrNew
Meiner Meinung nach verschieben Sie den '$ http'-Teil in eine Funktion, die den Wert als Parameter akzeptiert und in der Schleife verwendet. Der Grund für die Verwendung von Funktionen ist hier, den Vorteil der Schließung zu nutzen. – Ali