JavaScript Daten von API abfragen?

1 Antwort

Du musst dein Code reaktiv aufbauen. Wenn deine JavaScript Datei lädt und ausgeführt wird, sind die JSON nicht bekannt. Das Laden der Daten benötigt etwas Zeit. So wie JavaScript ausgeführt wird, blockiert die Zeile Code nicht, während die Daten abgerufen werden. Du musst also mit dem asynchronen Ausführen arbeiten.

Bei deinem HTTP Request wirst du wahrscheinlich ein Event haben, der irgendwann mit den JSON Daten ausgeführt wird. Ab hier kannst du mit dem JSON arbeiten.

Das einfachst wird sein, wenn du dein restlichen Code in eine oder mehrere Funktionen auslagerst. Die "main" Methode kannst du dann ausführen, wenn die Daten angekommen sind.

Falls zum JavaScript noch eine Webseite dazugehört, musst du diese Zeitdifferenz bedenken. Du könntest zu Beginn ein "Loading..." anzeigen und den Inhalt dann sinnvoll austauschen.

Dein ursprünglicher Wunsch könnte höchstens so aussehen:

let data = await loadData()

Das await Keyword gehört zur async Entwicklung von JavaScript. Die loadData Methode kann erstmal nur ein Promise Objekt zurückgeben. Ein Promise ist wie eine Überraschung, die in der Zukunft erfüllt werden kann. Es kann der gewünschte Wert oder auch ein Fehler dabei herauskommen. Mit await Keyword kannst du auf die Antwort warten. Anderer Code kann in der Zwischenzeit ausgeführt werden.

Falls du diesen Weg gehen möchtest, solltest du dich mit Thema Promise, await und async im Bereich JavaScript informieren.