Подсчитайте, сколько раз вы выполняете запрос AJAX, а затем подсчитайте, сколько раз вы видели вызов на завершенный обратный вызов.Когда количество завершенных обратных вызовов равно числу выполненных вами вызовов ajax, вы знаете, что все сделано.
var total = arr.length;
var count = 0;
for(var i = 0; i < arr.length; i++){
$.ajax({
// other options
complete: function(){
count++;
if(count == total){
// all finished!
}
}
});
}
Обратите внимание, что я использую обратный вызов «полностью», а не «успех», так как еслизапросы терпят неудачу, «успех» не будет вызван, но «полный» будет.Кроме того, я сначала объявил ожидаемую сумму в 'total', а не в этом примере.Это просто позволяет избежать маловероятного (хотя и технически возможного) сценария завершения всех ожидающих запросов ajax до того, как вы отправите все из них, и, следовательно, соответствующего количества.