Ich muss den Inhalt jeder Datei in einem Array über AJAX erhalten, analysieren sie, dann legen Sie die Ergebnisse in ein Array. Wie auch immer, JS überspringt scheinbar meine AJAX-Anrufe. Ich versuche, jQuery zu verwenden when es warten, aber es scheint nicht zu funktionieren:
$.when(
// Send a request for each file
$.map(fileNameArray, function(fileName,i){
$http.get(path + fileName).then(function(file) {
// analyze the results (takes some time)
var analysis = analyze(file)
$log.log("analysis: " + analysis)
return analysis
})
})
).then(function(x){
// I want this to run only after $.map is finished
$log.log("x: " + x)
})
ich dieses Ergebnis:
x:
analysis: > Object...
aber ich erwarte, um zu sehen this:
analysis: Object...
x: Array [...]
Verwende ich $ .when falsch? Gibt es einen besseren Weg, dies zu tun? Möglicherweise mit Angular?
sind eckig und JQuery verspricht kompatibel ?, ich würde besser $ q.all –
@ bto.rdz verwenden - guter Punkt. Ich würde empfehlen, alle jQuery daraus zu entfernen. Wenn Sie eine solche Version in einem Moment hinzufügen. – jfriend00