Globale Variable - 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: Globale Variable (/showthread.php?tid=2336) |
Globale Variable - Oly - 06.05.2023 Hallo zusammen, ich bin gerade am verzweifeln und finde keine Lösung. Code: let y=0; ich möchte gerne den y Wert global bekommen und bekomme es nicht hin. In oder aus der Function letztesY wird im log die richtigen werte angezeigt, doch im letzten bleibt die x Variable auf "0" wenn ich sie ganz untem im Code ausgeben möchte. Wo ist der Fehler? Ich sehe es nicht Gruß RE: Globale Variable - Oly - 07.05.2023 Alleine das schon PHP-Code:
Was mache ich falsch? RE: Globale Variable - rzscout - 08.05.2023 Wenn du eine globale Variable haben möchtest, solltest du var statt let verwenden und die Variable ganz am Anfang deklarieren. Dann kannst du auch innerhalb der Funktionen auf diese Variable zugreifen. Hier einige Seiten dazu: https://www.mediaevent.de/javascript/globale-lokale-variablen.html https://wiki.selfhtml.org/wiki/JavaScript/Variable RE: Globale Variable - Oly - 08.05.2023 überall steht auch das var veraltet ist und stattdessen let genommen werden sollte. Von daher habe ich mir nichts dabei gedacht das es an dem liegen soll. werde es ml ausprobieren. danke klappt aber auch nicht. Wenn ich das letzte Bsp. nutze und let zu var ändere. bleibt Testvar undefine. Aus einen deiner Links, die ich auch kenne. Steht z.B. In JavaScript entstehen globale Variablen auf dreierlei Weise:
Wie kann ich denn eine Variable deklarieren ohne var, let oder const? Denn dort steht, wenn sie NICHT ...deklariert wurden ok, den Fehler habe ich gefunden was das simple Bsp. betrifft. Man sollte die Function auch aufrufen damit es klappt Aber jetzt zu dem, wo das eigentliche Problem liegt PHP-Code:
PHP-Code:
RE: Globale Variable - rzscout - 08.05.2023 In dem ersten Beispiel in deinem ersten Eintrag hast du die Funktion test() nicht aufgerufen. Eine leere Variable zeigt er immer als undefined an. Also erst test() aufrufen und dann via Konsole anzeigen lassen. RE: Globale Variable - Oly - 08.05.2023 das schrieb ich ja, das ich den Fehler gesehen habe. Vielmehr geht es mir in dem Code PHP-Code:
letzterYWert am Ende des Codes wird als undefine ausgegeben. In der Function test oben, sind die werte drin wenn ich sie mir ausgeben lasse. und wenn ich es richtig verstanden habe, dann müsste es ja vollkommen ausreichen der Variable letzterYWert einen Wert zuzuweisen, den ich am Ende des Codes abfragen könnte, anstatt über eine Function zu gehen. RE: Globale Variable - Oly - 09.05.2023 ich habe eine Lösung gefunden die erstmal läuft. Würde mich freuen wenn mir jemand beim verbessern helfen könnte. Das Problem war, das die Ausgabe von "letzterYWert" kam, bevor "chrome.storage.local.get" fertig war. Mit dem setTimeOut warte ich und gebe dann die Variable aus. Ich möchte jetzt gerne das ohne setTimeOut gelöst haben(kann ja mal zu verzögerungen kommen, das settimeout nicht ausreicht) und weiss nicht wie ich das umsetzen muss. Function erledigt -> Ausgabe von "letzterYWert" . gibt es da eine einfache Lösung? mit async und await blicke ich ehrlich nicht durch. Wäre toll wenn jemand mir eine Lösung geben könnte RE: Globale Variable - rzscout - 09.05.2023 (09.05.2023, 10:03)Oly schrieb: ich habe eine Lösung gefunden die erstmal läuft. Würde mich freuen wenn mir jemand beim verbessern helfen könnte. Okey super. Wie ich sehe arbeitest du mit Browsererweiterungen. Diese passen besser in den Bereich für Browsererweiterungen. RE: Globale Variable - Oly - 09.05.2023 ja das schon, aber betrifft es nicht auch allgemein ein Problem und nicht nur spezifisch Chrome.Extension? Problem ist ja immer noch, wie bekomme ich einen Wert aus meiner Funktion? Die Ausgabe ist vor der Beendigung der Funktion und somit nicht aktuell gefüllt Mit SetTimeOut eine notdürftige Lösung, möchte aber gerne das mir der aktuelle Wert der Variable aus der Funktion ausgegeben wird, sobald die Funktion beendet wurde RE: Globale Variable - AndreasB - 10.05.2023 (09.05.2023, 18:38)Oly schrieb: [...] wie bekomme ich einen Wert aus meiner Funktion? [...]Gar nicht! Alle Werte, die in einer Asyncronen Funktion (hier der chrome.storage.local.get Callback) gesetzt werden, sind außerhalb des Scopes dieser Funktion nicht erreichbar. Du musst also, wenn du mit dem Wert weiter arbeiten möchtest, in dem Scope des Callbacks bleiben und kannst nicht außerhalb auf den Wert der Variablen zugreifen. |