Задать вопрос
@hello_world_666

Как остановить цикл до выполнения ajax?

Здравствуйте, как остановить цикл до выполнения ajax и продолжить после выполнения? Ответ одного цикла где-то 5 секунд, циклов может быть до 40, нужно что бы не завис браузер.

jsonData.checkList.forEach(function(data) {
$.ajax({
    type: 'POST',
    url: '/action/action.php',
    data: data,
    success: function(response) {
        var jsonData = JSON.parse(response);
            .......
        }
    });
});
  • Вопрос задан
  • 181 просмотр
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
На JavaScript цикл forумеет ожидать результат промиса на каждой итерации
for (data of datas) {
  await fetch( ... ) 
}
Ответ написан
zkrvndm
@zkrvndm
Архитектор решений
Проще простого. Запустите в консоли:
for (key in jsonData.checkList) {

	var response = await $.ajax({
		type: 'POST',
		url: '/action/action.php',
		data: jsonData.checkList[key],
		dataType: 'json' // Указываем, что ответ надо сразу распарсить, как JSON
	});
	
	console.log('Получены данные:');
	console.dir(response);
	
}

При использовании в коде не забудьте цикл обернуть в асинхронную функцию.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы