Функция, определенная ниже, предназначена для создания объекта обещания с несколькими динамическими c ajax выполнением запроса,
function executeChunkwise(start, end, parameterObj, batchnumber){
var allPromises = [];
for(var i=start;i<end;i++) {
(function(index){
allPromises.push(new Promise(function(resolve, reject) {
$.ajax({
url: "myurl",
data: 'queryparameter=' + parameterObj[index],
method: 'POST',
success: function (response) {
$.each(response, function() {
idObj = [];
$.each(this, function(k, v) {
idObj.push(this.id);
});
data.push({
'dynamicVar': parameterObj[index],
'products': idObj
});
});
},
error: function (response) {
resolve(true)
}
}).done(function(response){
resolve(true);
});
}));
})(i);
}
//execute all promised ajax requests and pass the finalised reponse as data to create
//the json file via new ajax request.
Promise.all(allPromises).then((result) => {
$.ajax({
url: "jsonGenerator.php",
data: {
response: JSON.stringify(data),
batchnumber: batchnumber
},
dataType: 'json',
cache: false,
method: 'POST',
success: function (item) {
//success
}
});
})
}
, который в дальнейшем будет выполняться для размера фрагмента 1000 при готовности документа.
$(document).ready(function() {
val = <?php echo json_encode($records) ?>;
chunk=1000;
batchnumber = 1;
for (start=0,end=val.length; start<end; start+=chunk) {
var batchend = (start+chunk > end) ? end : start+chunk;
executeChunkwise(start, batchend, val, batchnumber);
batchnumber+=1;
}
})
В результате появляется странная ошибка для нескольких из обещанных ajax запросов,
Также на вкладке Сеть параметров разработчика я получаю предупреждающее сообщение:
Отображаются предварительные заголовки
Я не знаю, что я выполняю здесь неправильно, или существуют определенные ограничения для выполнения несколько непрерывных ajax запросов.