Вместо того, чтобы использовать цикл for для управления итерациями, установите объект, который:
1) При создании передается объект обратного вызова nextIter
2) Создает собственный вызов
3) затем на readystate4 ...
3a) выполняет свою обработку
3b) Вызывает функцию-член nextIter.Этот объект будет другим экземпляром того же объекта.
Таким образом, ваш цикл for просто создаст структуру объекта, где
objAobjBobjC ...
... и вызовы просто объединяются в цепочку после завершения каждого вызова ajax, и делегируются следующему в цепочке ... до тех пор, пока нижний элемент не будет ссылаться на нуль.
Надеюсь, это имеет смысл.