Как вызвать функцию 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 верно перед печатью на консоль? Пожалуйста, имейте в виду, что я все еще желаю, чтобы процесс был асинхронным.

Ответы на вопрос(7)

Ваш ответ на вопрос