NEWS
Frage: setState(id, getState(other id).val) in Adapter verwenden
-
Hallo,
ich hab man ne Frage zur Adapter Entwicklung.
Im Javascript Adapter kann man folgendes machen:
setState(id, getState(other id).val)
also das Setzen eines Objektes mit dem Wert eines anderen, oder auch mit dem jetzt gültigen der gleichen id.
Und das klappt ohne die Asynchronitätsprobleme.
Wie kann man das nun in einem normalen Adapter realisieren?
Ein Codeschnipsel wäre hilfreich.
Eine weiter Frage, wie kann man in einem zyklisch laufenden Adapter auch ein schedule() cronjob, ähnlich dem Javascript Adapter einbauen?
Gruß
Klaus
-
getState("other id", function (obj) { setState("id", obj.val, ack); // ack ist true oder false });
Bedenke, dass Code, der unter getState folgt, direkt nach dem Aufruf von getState ausgeführt wird und wahrscheinlich bevor der Callback aufgerufen wird.
Kann Probleme in der Ausführungsreihenfolge bedeuten, wenn du es nicht beachtest.
-
getState("other id", function (obj) { setState("id", obj.val, ack); // ack ist true oder false });
Bedenke, dass Code, der unter getState folgt, direkt nach dem Aufruf von getState ausgeführt wird und wahrscheinlich bevor der Callback aufgerufen wird.
Kann Probleme in der Ausführungsreihenfolge bedeuten, wenn du es nicht beachtest. `
Aber innerhalb des callbacks ist alles richtig?! Die Anweisung etwas umzuspeichern wäre die letzte im funktionsaufruf. Also danach kommt nix mehr (bzw. evtl. Läuft ein nächster schleifendurchlauf.).
Versuche mich grad an nem Adapter für Statistik und da kommt das häufiger vor.
Gesendet von iPhone mit Tapatalk
-
Ja, das passt so!
-
Danke für die callback Info.
bleibt noch die Frage, wie kann man in einem zyklisch laufenden Adapter auch ein schedule() cronjob, ähnlich dem Javascript Adapter einbauen kann?
Hat jemand eine Idee?
Gruß
Klaus
-
ich hab in meinem "lokalen" Adapter mehrere Timer laufen welche z.B. jede Minute oder jede Stunde oder 1 x am Tag irgendetwas ausführen.
Meinst Du sowas? Dann kann ich dir ein Beispiel posten.
-
ich hab in meinem "lokalen" Adapter mehrere Timer laufen welche z.B. jede Minute oder jede Stunde oder 1 x am Tag irgendetwas ausführen.
Meinst Du sowas? Dann kann ich dir ein Beispiel posten. `
Ich meinte so etwas wie cronjob. Im JavaScript Adapter ist es schedule mit dem Format vom cronjob. Eine Funktion die Suche alle 5min wiederholt hab ich. Ich suche etwas um an einem bestimmten Zeitpunkt einen trigger zu setzen.
Gesendet von iPhone mit Tapatalk
-
Das hatte ich damals auch gesucht, aber nicht gefunden.
Daher hab ich mir mit den Timern geholfen.
-
Im JS-Adapter wird das NPM-Modul https://www.npmjs.com/package/node-schedule verwendet.
-
Im JS-Adapter wird das NPM-Modul https://www.npmjs.com/package/node-schedule verwendet. `
Danke, das ist genau der richtige Hinweis.[emoji106]Gesendet von iPhone mit Tapatalk