Много текста, неохота разбиратся. Делайте тестовые примеры отображающие суть. Например то что я хотел сказать:
var toRequest = [{...}, {...}, {...}, {...}];
var check = function () {
if (toRequest.length) {
load(toRequest.pop());
} else {
//Все запросы выполнены и ответы получены!
}
};
var load = function (params) {
$.ajax({
data: params,
success: function (data) {
//Обрабатываем ответ
check();//Если по логике дальнейшие запросы не нужны не вызываем
}
});
}
check();