Здравствуйте!
Есть массив
arr, который мы будем обрабатывать.
Как нам пробежаться по нему, обрабатывая следующий элемент только тогда, когда обработали первый.
Есть такой пример с аякс. Мы передаем функции первый элемент. После того, как аякс выполнился, мы запускаем функцию рекурсивно, передав дальше массив, без первого элемента и так далее. Если массив пуст. Мы завершаем выполнение.
var array = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'];
function send(arr) {
if (arr.length == 0)
return;
let a = arr.splice(0, 1)[0];
$.ajax({
url: '/assets/themes/theme/send.php',
method: 'post',
data: {
text: a,
},
success: function(data) {
setTimeout(function() {
console.log("Done: ", a);
send(arr);
}, 2000);
}
});
}
send(array);
Я не считаю это лучшим решением. Тем более, если у нас будет не аякс, а к примеру тяжелое вычисление данных, то этот код уже не подходит.
Основная задача, чтобы наш цикл выполнялся последовательно. Второй элемент выполняется только после того, как первый завершил работу.