Я отвечу ужасным, нарисованным рукой комиком. Второе изображение является причиной того, что result
является undefined
в вашем примере кода.
Если вы нуждаетесь , запросы, которые будут выполняться последовательно, а не параллельно, вы можете сделать это с небольшой реструктуризацией. Не делайте запросы AJAX синхронными, просто используйте ответ каждого запроса для вызова следующего.
Рассмотрим такую структуру:
function sendRequest() {
$.ajax({
type: "GET",
url: "insert_names.php",
success: function (data) {
// some codes
}
});
}
Теперь запрос завернут в функции, которую вы можете вызвать. Поэтому вызовите его в ответ на предыдущий запрос:
function sendRequest() {
$.ajax({
type: "GET",
url: "insert_names.php",
success: function (data) {
// some codes
sendRequest();
}
});
}
Он начинает выглядеть как стандартный рекурсивный шаблон, поэтому все, что вам нужно сейчас, - это условие завершения. Как и в исходном цикле, просто используйте значение incrementing:
var i = 1;
function sendRequest() {
$.ajax({
type: "GET",
url: "insert_names.php",
success: function (data) {
// some codes
i++;
if (i <= 10) {
sendRequest();
}
}
});
}
Затем просто запустите его один раз, чтобы запустить его:
sendRequest();
Теперь запрос должен быть вызван 10 раз, как (если только моя математика не отключена, но это должно быть легко исправить), каждый запрос выполняется в ответ на предыдущий запрос.
При асинхронном программировании не пытайтесь сделать его синхронным. Вместо этого выполните действия в ответ на обратные вызовы.