Я создаю выпадающий список в JavaScript, я загружаю данные через Ajax и JSON, на данный момент мой код проходит через набор отделов и запускается в вызов ajax на каждой итерации.AJAX - Подождите, пока данные будут добавлены до следующего цикла
Моя проблема заключается в том, что мои данные, похоже, добавляются в случайном порядке, что, вероятно, будет загружаться в том порядке, в каком они загружаются быстрее всего.
Я хочу, чтобы иметь возможность пройти через мой вызов Ajax и добавить данные в том порядке, в котором я объявляю (для каждого отдела). это что-то, что можно сделать?
Вот мой код:
//-- Ajax --
var departments = ['Accounts', 'Commercial', 'Installation', 'Production', 'Sales'];
var i;
for (i = 0; i < departments.length; i++) {
$.ajax({
type: "POST",
url: "Default.aspx/EmployeesDropDown",
data: '{X: "' + departments[i] + '"}',
contentType: "application/json; charset=utf-8",
dataType: "text json",
async: true,
success: createdropdown,
failure: function() {
alert("FAIL!");
}
});
}
//-- Creates dropdown --
function createdropdown(data) {
...appends all the data to my drop down list...
}
Любая помощь или советы оценили, спасибо заранее.
EDIT: Этот вопрос отличается от связанных, потому что мне нужно иметь возможность прокручивать строковый массив, а не просто итерировать на основе чисел.
использование Javascript обещает – madalinivascu
или просто сделать один звонок АЯКС – madalinivascu
Кажется дубликат этого http://stackoverflow.com/questions/22978843/ How-to-Make-for-loop-wait-until-async-call-was-success-before-to-continue – rick