NEWS
async / await -> Muster Anleitung gesucht
-
@dslraser sagte in async / await -> Muster Anleitung gesucht:
State "javascript.0.Geraete_zaehlen.Steckdosen.Haus.01_Anzeigen_und_Listen.04_eingeschaltete_Steckdosen_Liste"
was ist mit diesem DP wenn du nach der Fehlermeldung in den Objekten schaust? Evtl. nach Refresh oder testweise Adapter-Neustart. Wenn der State dann da ist würde ich auf das im issue genannte Timing Problem tippen. Allerdings wird dort der Fehler nur genannt wenn ein init Wert besteht, nicht wenn man diesen in common.def definiert. Das ist aber bei dir so. Das issue habe ich selbst auch nicht, evtl. weil ich etwas schnellere Hardware nutze
-
@fastfoot
der DP aus der Fehlermeldung ist immer da. -
@dslraser sagte in async / await -> Muster Anleitung gesucht:
@fastfoot
der DP aus der Fehlermeldung ist immer da.dann ist es wohl ein Timing problem. Das async/await ist schon ok und kann auch nicht 'verbessert' werden. Ich würde als Workaround ein
await wait(1000)
hinter den Aufruf von createStates() setzen. Eigentlich sollte aber genau das ja durch await vermieden werden. Im issue wurde es als enhancement markiert, in meinen Augen wäre das dann aber ein Bug. @apollon77 hast du dazu eine Antwort? -
@fastfoot sagte in async / await -> Muster Anleitung gesucht:
await wait(1000)
damit lief es eben sauber durch. Mal sehen wie weit ich mit der Zeit runter gehen kann.
-
@dslraser sagte in async / await -> Muster Anleitung gesucht:
@fastfoot sagte in async / await -> Muster Anleitung gesucht:
await wait(1000)
damit lief es eben sauber durch. Mal sehen wie weit ich mit der Zeit runter gehen kann.
das tat es ja vorher auch schon ohne das Warten
Ich würde es erst mal so lassen, da es nur ein Workaround sein kann bis der eigentliche Fehler gefunden und gefixt ist. Mir ist es noch nicht ganz klar weil ich von await erwartet hätte dass die Funktion dann auch wirklich fertig ist und nicht noch etwas im Hintergrund rumtrödelt. Aber mal sehen was apollon77 dazu sagt falls er die Zeit findet
-
@fastfoot
selbst mitawait wait(100)
lief es jetzt x Mal sauber und ohne Absturz durch, also wirklich irgendein Timing Problem. -
@fastfoot Naja das await stellt in dem Augenblick nur sicher das das Objekt angelegt und der Wert gesetzt wurde ... Ich hab auch überlegt ob bug oder enhancement :-)) ist so ne sache ... ja es ist ... ... unerwartet das es ist wie es ist
ALso ja man kann auch sagen es ist ein Bug ...
Der JavaScript Adapter versucht viele Dinge für den User zu vereinfachen und die "komplexität durch asynchronität" wegzunehmen ... und das ist nicht ganz so simpel wie man hier sieht
-
@apollon77 Danke für deine hilfreiche Antwort, das hilft (mir) sehr bei der Einordnung. Einen Workaround gibt es ja immerhin und damit kann/muss man jetzt erstmal leben.
-
@fastfoot Ich denke die echte warte zeit sind eher maximal 100ms ... aber naja
-
@apollon77 ich gehe da immer sehr konservativ ran
@dslraser hat es ja schon auf 100ms runter gedrückt. Bevor ich mich dann endlich mal mit async/await beschäftigt hatte hat auch schon mal ein
await wait(0)
definitiv geholfen, in anderem Kontext allerdings -
@fastfoot sagte in async / await -> Muster Anleitung gesucht:
@apollon77 ich gehe da immer sehr konservativ ran
@dslraser hat es ja schon auf 100ms runter gedrückt. Bevor ich mich dann endlich mal mit async/await beschäftigt hatte hat auch schon mal ein
await wait(0)
definitiv geholfen, in anderem Kontext allerdings50ms reichen auch, damit läuft es bei mir auch. Testweise 10ms, das ging dann schief und der Fehler kam wieder.