XMLHTTP Request JSON undefined
Hallo Zusammen,
ich möchte einen Request auf eine JSON machen. Soweit funktioniert dieser auch.
Nun brauch ich das Ergebnis aber in einer Variablen. Dabei habe ich den Wert über einen Callback zurückgegeben, was auch soweit funktioniert.
Weise ich diese mit einem Return nun einer variablen zu bekomme ich immer undefined. Irgendwo habe ich hier noch einen hänger
MfG
Florian86
ich möchte einen Request auf eine JSON machen. Soweit funktioniert dieser auch.
Nun brauch ich das Ergebnis aber in einer Variablen. Dabei habe ich den Wert über einen Callback zurückgegeben, was auch soweit funktioniert.
Weise ich diese mit einem Return nun einer variablen zu bekomme ich immer undefined. Irgendwo habe ich hier noch einen hänger
MfG
Florian86
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1290917767
Url: https://administrator.de/contentid/1290917767
Ausgedruckt am: 26.11.2024 um 08:11 Uhr
6 Kommentare
Neuester Kommentar
Hallöle,
also dein console.log(data); in der letzten Zeile versucht eine Variable auszugeben, die in dem Moment noch keinen Inhalt hat.
Mit dem Aufruf von jsonMat(...) wird ja ein asynchroner Request angetreten - der läuft dann. Dann wird das console.log(data) ausgegeben, während jsonMat(...) noch garnicht fertig ist ist.
Jedenfalls erklär ich mir das so .
MfG E
also dein console.log(data); in der letzten Zeile versucht eine Variable auszugeben, die in dem Moment noch keinen Inhalt hat.
Mit dem Aufruf von jsonMat(...) wird ja ein asynchroner Request angetreten - der läuft dann. Dann wird das console.log(data) ausgegeben, während jsonMat(...) noch garnicht fertig ist ist.
Jedenfalls erklär ich mir das so .
MfG E
Der Vorgang ist dann abgeschlossen, wenn die angegebene Callback-Funktion aufgerufen wird. Das heißt: Innerhalb der Callback-Funktion sollte die Variable "data" gefüllt sein.
Dass das console.log(data); ein "undefined" ausgibt, kommt durch die asynchrone Ausführung zustande, weil der Code an der Stelle quasi weiterläuft und nicht wartet.
Alternativ und (deprecated) kann man den XhrRequest synchron ausführen lassen, dann wird gewartet bis das Ergebnis da ist. Aber da kann beispielsweise den Browser blockieren.
Vorschlag
Wickle alles was passieren soll, sobald die Daten da sind in eine Funktion, die dann als Callback vom XHRRequest aufgerufen wird.
Auch interessant: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchron ...
Dass das console.log(data); ein "undefined" ausgibt, kommt durch die asynchrone Ausführung zustande, weil der Code an der Stelle quasi weiterläuft und nicht wartet.
Alternativ und (deprecated) kann man den XhrRequest synchron ausführen lassen, dann wird gewartet bis das Ergebnis da ist. Aber da kann beispielsweise den Browser blockieren.
Vorschlag
Wickle alles was passieren soll, sobald die Daten da sind in eine Funktion, die dann als Callback vom XHRRequest aufgerufen wird.
Auch interessant: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchron ...