Ich versuche, einen effizienteren Weg zu finden, um die Listenelemente im DOM zu erstellen.Erstellen von Listenelementen, nachdem die GET-Anforderung abgeschlossen ist
Im Moment wird die Liste erstellt, wenn jede API-Anfrage gestellt wird.
Ich dränge jedes Objekt in ein eigenes Array, ich möchte die Liste erstellen, sobald alle Daten geladen haben.
Zusätzlich verwende ich Webpack und Babel.
let streamApi = 'https://wind-bow.glitch.me/twitch-api/streams/';
let twitchUsers = ['ESL_SC2', 'OgamingSC2', 'freecodecamp', 'noobs2ninjas', 'comster404'];
let streamByUser = [];
window.onload = function() {
//Make a API request for each user and store in an array
twitchUsers.map((user) => {
fetch(streamApi + user, {method: 'GET'})
.then(response => response.json())
.then(json => {
streamByUser.push(json);
let uL = document.getElementById("user-list");
let listItem = document.createElement("li");
listItem.className = "list-group-item";
if (json.stream === null) {
listItem.innerHTML = "null";
} else {
listItem.innerHTML = json.stream.channel.display_name;
}
uL.appendChild(listItem);
});
});
};
UPDATE: Alles funktioniert!
Sie kehren nicht von 'twitchUser.map' zurück. Es sollte das Versprechen zurückgeben: 'let streamByUser = twitchUsers.map ((Benutzer) => { return fetch (streamApi + user, {Methode: 'GET'}). Dann (response => response.json()); }); 'Mehr über [ES6 Pfeil Funktion hier] (https://leanpub.com/understandinges6/read#leanpub-auto-arrow-functions) – Lekhnath