Как вызвать функцию ajax в цикле for [duplicate]
На этот вопрос уже есть ответ:
JavaScript замыкание внутри циклов - простой практический пример 39 ответовЯ новичок в ajax и JavaScript. Я пытаюсь вызвать функцию ajax несколько раз, чтобы извлечь определенные данные из ресурса, а затем «вытолкнуть» все данные в массив, чтобы я мог использовать их позже в коде. Вот мой код.
var arr = [];
var users = ["brunofin", "comster404", "ESL_SC2", "OgamingSC2", "cretetion", "freecodecamp", "storbeck", "habathcx", "RobotCaleb", "noobs2ninjas"];
for (i = 0; i < users.length; i++) {
$.ajax({
url: "https://api.twitch.tv/kraken/streams/" + users[i],
success: function(data) {
arr.push(data);
},
error: function(data) {
arr.push("blank");
},
complete: function() {
if (i == users.length) {
console.log(arr); //This seem to print even when the condition isn't true
}
}
});
}
Проблема с кодом в том, что он печатается на консоли, даже когдаi
не равноusers.length
Мой вопрос есть; как мне убедиться, что он ждет доi == users.length
верно перед печатью на консоль? Пожалуйста, имейте в виду, что я все еще желаю, чтобы процесс был асинхронным.