Javascript-forum
Variable aus Funktion zurückerhalten - Druckversion

+- Javascript-forum (https://javascript-forum.de)
+-- Forum: Entwicklung (https://javascript-forum.de/forumdisplay.php?fid=4)
+--- Forum: Javascript (https://javascript-forum.de/forumdisplay.php?fid=6)
+--- Thema: Variable aus Funktion zurückerhalten (/showthread.php?tid=2819)



Variable aus Funktion zurückerhalten - Kai_Behncke - 27.03.2024

Hallo liebe Leute,

für einige ist diese Aufgabe vielleicht ganz einfach (für mich leider nicht).

Ich nutze eine API, um verschiedene Koordinatensystemsyteme umzuwandeln.

Code:
    require([
          "esri/geometry/projection"
], function(projection) { ....

Zwingend muss die Funktion über ein load().then... aufgerufen werden:
Code:
projection.load().then(function() {
var punkt2=projection.project(punkt1, cs2);
alert ("In Function: "+punkt2.x);
});

alert ("Ausserhalb Function: "+punkt2.x);

Innerhalb dieser Funktion erhalte ich auch die völlig korrekten Koordinaten (hier: punkt2.x). Jedoch: Wie kann ich auf die Variable "punkt2" ausserhalb dieser Funktion zugreifen?
alert ("Ausserhalb Function: "+punkt2.x);  sagt mir, dass die Variable nicht existiert.

Irgendwie stehe ich da völlig auf dem Schlauch. Kann mir da jemand einen Tipp geben?
Danke im voraus :-)


RE: Variable aus Funktion zurückerhalten - Sempervivum - 27.03.2024

Hallo und willkommen im Forum!

Zitat:Wie kann ich auf die Variable "punkt2" ausserhalb dieser Funktion zugreifen?
Kurze Antwort: Leider gar nicht. Der Zugriff auf diese API erfolgt asynchron, d. h. zunächst wird eine Anfrage abgeschickt und einen Moment später kommt die Antwort darauf mit den Daten, die Du brauchst. Versuchst Du, direkt nach dem Aufruf dieses load auf diese Daten zuzugreifen, ist die Antwort noch nicht da.
Du kommst nicht daran vorbei, den Code, der die Daten braucht, in dieser then-Funktion unterzubringen.
Eine andere Variante der Notation ist async-await aber auch da führt kein Weg daran vorbei, das ganze in einer Funktion unterzubringen.


RE: Variable aus Funktion zurückerhalten - Kai_Behncke - 27.03.2024

Alles klar, vielen lieben Dank :-)