Добрый день! У меня появилась проблема с синхронностью выполнения обращения к API. Получаю код ошибки 429 (пользователь отправил слишком много запросов за последнее время). Как сделать так, чтобы промисы выполнялись поочередно друг за другом?
// общая функция вызова ajax
function readTextFile(file, callback) {
var rawFile = new XMLHttpRequest();
rawFile.overrideMimeType("application/x-ndjson");
rawFile.open("GET", file, true);
rawFile.onreadystatechange = function() {
if (rawFile.readyState === 4 && rawFile.status == "200") {
callback(rawFile.responseText);
}
}
rawFile.send(null);
}
// получить все турниры через API
readTextFile("........", async function(text){
...
var dataObject = JSON.parse('[' + data + ']');
var promises = [];
let result = [];
var let = 0;
while (i <= 10) {
promises.push(get_results(dataObject[i].id));
i++;
}
const data = await Promise.all(promises).then((value) => { console.log("qqq")});
});
// получить результаты по конкретному турниру через API
function get_results(tournament_id){
return new Promise((resolve) => {
readTextFile(".......", function(text){
var data = text.split( '}\n{' ).join( '},{' );
data = data.split( '\r\n' ).join( '|' );
var dataObject = JSON.parse('[' + data + ']');
var q = JSON.stringify(dataObject);
var request= new XMLHttpRequest();
request.onreadystatechange = function(){
console.log(request.responseText);
}
request.open("POST", "includes/update_users_list.php", true);
request.setRequestHeader("Content-type", "application/json");
request.send(q);
})
})
}