So rufen Sie eine Ajax-Funktion in einer for-Schleife auf [duplizieren]

Diese Frage hat hier bereits eine Antwort:

JavaScript-Verschluss in Schleifen - einfaches praktisches Beispiel 39 answers

Ich bin neu in Ajax und JavaScript. Ich versuche, eine Ajax-Funktion mehrmals aufzurufen, um bestimmte Daten aus einer Ressource abzurufen und dann alle Daten in ein Array zu "pushen", damit ich sie später im Code verwenden kann. Hier ist mein Code.

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
            }
        }
    });
}

Das Problem mit dem Code ist, dass er auch dann auf der Konsole gedruckt wird, wenni ist nicht gleichusers.length

Meine Frage ist; wie stelle ich sicher, dass es bis @ warti == users.length ist wahr, bevor es auf der Konsole gedruckt wird? Bitte beachten Sie, dass der Prozess immer noch asynchron sein soll.

Antworten auf die Frage(14)

Ihre Antwort auf die Frage