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
Please also mark the comments that contributed to the solution of the article
Content-Key: 1290917767
Url: https://administrator.de/contentid/1290917767
Printed on: May 20, 2024 at 22:05 o'clock
6 Comments
Latest comment
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 ...