Мне нужно получить содержимое каждого файла в массиве через AJAX, проанализировать их, а затем поместить результаты в массив. Тем не менее, JS пропускает мои вызовы AJAX, казалось бы, ни на что. Я пытаюсь использовать JQuery-х when, чтобы сделать его ждать, но не кажется, что это будет работать:
$.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)
})
Я получаю этот результат:
x:
analysis: > Object...
Однако, я ожидал увидеть это:
analysis: Object...
x: Array [...]
Могу ли я использовать $ .when неправильно? Есть лучший способ сделать это? Возможно с угловым?
угловатые и Jquery обещает совместимы ?, я бы лучше использовать $ q.all –
@ bto.rdz - хороший момент. Я бы рекомендовал удалить из него все jQuery. Если вы добавите такую версию в одно мгновение. – jfriend00