NEWS
Variablen Beständigkeit
-
Hallo,
ich habe hier irgendwie einen Denkfehler und bräuchte mal Hilfe.
Folgender Code:var state = 0; function test() { if (state == 0 && getState(...).val > 0){ state = 1; tue irgendetwas... } } on({id: '...', change: 'ne'}, function (obj) { test(); });Die If Bedingung ist nie wahr, da state = undefined ist. Wenn ich das ganze über ein Objekt anstatt der Variable ausführe, funktioniert der Code.
Frage:
Wie muss man die Variable definieren, dass diese solange existiert, bis das Script beendet wird etc., oder funktioniert das nur über Objekte?Vielen dank
Lg
-
Hallo,
ich habe hier irgendwie einen Denkfehler und bräuchte mal Hilfe.
Folgender Code:var state = 0; function test() { if (state == 0 && getState(...).val > 0){ state = 1; tue irgendetwas... } } on({id: '...', change: 'ne'}, function (obj) { test(); });Die If Bedingung ist nie wahr, da state = undefined ist. Wenn ich das ganze über ein Objekt anstatt der Variable ausführe, funktioniert der Code.
Frage:
Wie muss man die Variable definieren, dass diese solange existiert, bis das Script beendet wird etc., oder funktioniert das nur über Objekte?Vielen dank
Lg
@downbroker sagte in Variablen Beständigkeit:
state
ist das nicht ein reserviertes Wort ??
nenn es mal anders..
-
Hallo,
ich habe hier irgendwie einen Denkfehler und bräuchte mal Hilfe.
Folgender Code:var state = 0; function test() { if (state == 0 && getState(...).val > 0){ state = 1; tue irgendetwas... } } on({id: '...', change: 'ne'}, function (obj) { test(); });Die If Bedingung ist nie wahr, da state = undefined ist. Wenn ich das ganze über ein Objekt anstatt der Variable ausführe, funktioniert der Code.
Frage:
Wie muss man die Variable definieren, dass diese solange existiert, bis das Script beendet wird etc., oder funktioniert das nur über Objekte?Vielen dank
Lg
@downbroker sagte: Die If Bedingung ist nie wahr, da state = undefined ist.
Das kann ich nicht nachvollziehen.
var state = 0; function test() { if (state == 0) { state = 1; log('' + state); } } test();funktioniert wie erwartet.
-
@downbroker sagte in Variablen Beständigkeit:
state
ist das nicht ein reserviertes Wort ??
nenn es mal anders..
@arteck said in Variablen Beständigkeit:
@downbroker sagte in Variablen Beständigkeit:
state
ist das nicht ein reserviertes Wort ??
nenn es mal anders..
In dem script lautet die Variable stategas z.B., ich hatte das jetzt nur vereinfacht.
Aber danke für den Tipp.@paul53 said in Variablen Beständigkeit:
@downbroker sagte: Die If Bedingung ist nie wahr, da state = undefined ist.
Das kann ich nicht nachvollziehen.
var state = 0; function test() { if (state == 0) { state = 1; log('' + state); } } test();funktioniert wie erwartet.
Das funktioniert natürlich bei mir auch, allerdings wird die Funktion erst aufgerufen, sobald mein ebus einen Statuswechsel meldet(z.B.: Gasbrenner läuft) mit:
on({id: 'ebus.0.GAS.messages.pumpe.fields.status.value', change: 'ne'}, function (obj) { test(); });zu diesem Zeitpunkt ist allerdings keine Variable mehr vorhanden, da die Variablen wohl nach dem ersten durchlauf gelöscht werden.
Vielen Dank
LG
-
@arteck said in Variablen Beständigkeit:
@downbroker sagte in Variablen Beständigkeit:
state
ist das nicht ein reserviertes Wort ??
nenn es mal anders..
In dem script lautet die Variable stategas z.B., ich hatte das jetzt nur vereinfacht.
Aber danke für den Tipp.@paul53 said in Variablen Beständigkeit:
@downbroker sagte: Die If Bedingung ist nie wahr, da state = undefined ist.
Das kann ich nicht nachvollziehen.
var state = 0; function test() { if (state == 0) { state = 1; log('' + state); } } test();funktioniert wie erwartet.
Das funktioniert natürlich bei mir auch, allerdings wird die Funktion erst aufgerufen, sobald mein ebus einen Statuswechsel meldet(z.B.: Gasbrenner läuft) mit:
on({id: 'ebus.0.GAS.messages.pumpe.fields.status.value', change: 'ne'}, function (obj) { test(); });zu diesem Zeitpunkt ist allerdings keine Variable mehr vorhanden, da die Variablen wohl nach dem ersten durchlauf gelöscht werden.
Vielen Dank
LG
@downbroker sagte: da die Variablen wohl nach dem ersten durchlauf gelöscht werden.
Variablen werden nicht gelöscht.
-
@arteck said in Variablen Beständigkeit:
@downbroker sagte in Variablen Beständigkeit:
state
ist das nicht ein reserviertes Wort ??
nenn es mal anders..
In dem script lautet die Variable stategas z.B., ich hatte das jetzt nur vereinfacht.
Aber danke für den Tipp.@paul53 said in Variablen Beständigkeit:
@downbroker sagte: Die If Bedingung ist nie wahr, da state = undefined ist.
Das kann ich nicht nachvollziehen.
var state = 0; function test() { if (state == 0) { state = 1; log('' + state); } } test();funktioniert wie erwartet.
Das funktioniert natürlich bei mir auch, allerdings wird die Funktion erst aufgerufen, sobald mein ebus einen Statuswechsel meldet(z.B.: Gasbrenner läuft) mit:
on({id: 'ebus.0.GAS.messages.pumpe.fields.status.value', change: 'ne'}, function (obj) { test(); });zu diesem Zeitpunkt ist allerdings keine Variable mehr vorhanden, da die Variablen wohl nach dem ersten durchlauf gelöscht werden.
Vielen Dank
LG
@downbroker
ist der Datenpunkt bei on() und test() gleich? Meine die ... ? -
Fehler gefunden und läuft wie gewünscht. Bei einer Funktion war noch die Variable "state" vorhanden, welche wohl das ganze Script durcheinander gebracht hat. Namen geändert und fertig wie @arteck vermutet hat.
Sorry und Vielen dank schon mal!
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden