You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue is still present in the current beta version of this adapter
There is no other (open) issue with the same topic (use the search!)
This issue is not described in the adapter documentation / FAQ (read the docs!)
Script type
JavaScript
The problem
In einem Datenpunkt ist eine Array enthalten.
Mit einem getState(ID).val wird das Array in eine Variable1 übernommen, in eine Variable2 wird eine Kopie der Variable1 abgelegt.
Variable2 wird sortiert. Danach haben Variable1 und Variable2 das sortierte Array als Wert.
Ein erneutes getState(ID).val für Variable1 ist ohne Wirkung, in Variable1 bleibt das sortierte Array, selbst wenn dem vor dem erneuten getState() ein leeres Array zugewiesen wird.
Skript stoppen und neu starten ist ohne Änderung.
Nach Stoppen und Starten der JS-Instanz funktioniert getState(ID).val einmalig wieder.
Das ist ein generelles Problem. .sort() sortiert ja die originale Referenz um (und gibt kein neues Array zurück). Daher wird im Cache des JavaScript-Adapters der Wert umsortiert und dann immer wieder so zurückgegeben.
Das gleiche Problem kann man erreichen, wenn man einen State holt, .val auf einen anderen Wert setzt und dann den State nochmal liest. Das wurde nicht berücksichtigt und es sollte immer eine Kopie des State zurückgeliefert werden.
I'm sure that
Script type
JavaScript
The problem
In einem Datenpunkt ist eine Array enthalten.
Mit einem getState(ID).val wird das Array in eine Variable1 übernommen, in eine Variable2 wird eine Kopie der Variable1 abgelegt.
Variable2 wird sortiert. Danach haben Variable1 und Variable2 das sortierte Array als Wert.
Ein erneutes getState(ID).val für Variable1 ist ohne Wirkung, in Variable1 bleibt das sortierte Array, selbst wenn dem vor dem erneuten getState() ein leeres Array zugewiesen wird.
Skript stoppen und neu starten ist ohne Änderung.
Nach Stoppen und Starten der JS-Instanz funktioniert getState(ID).val einmalig wieder.
iobroker.current.log (in debug mode!)
Version of nodejs
20.18.0
Version of ioBroker js-controller
6.0.11
Version of adapter
8.8.3
The text was updated successfully, but these errors were encountered: