NEWS
OK Frage: for ( x in y) -> nur zwei von drei items
-
Ich zweifele langsam an meinem Verstand…
sorry, wenn ich noch einmal eine Javascript Frage stellen muss.
function dpAnlegen() { for (var lampenGruppe in lampen) { createState(hueSzenenApapterPfad + lampenGruppe,"aus"); log(hueSzenenApapterPfad + lampenGruppe); } }
Log (alle drei items sind vorhanden):
javascript-1 2015-08-17 18:10:19 info script.js.test_hue_szene_wz(1): hue.szene.arbeitszimmer javascript-1 2015-08-17 18:10:19 info script.js.test_hue_szene_wz(1): hue.szene.schlafzimmer javascript-1 2015-08-17 18:10:19 info script.js.test_hue_szene_wz(1): hue.szene.wohnzimmer javascript-1 2015-08-17 18:10:19 info Start javascript script.js.test_hue_szene_wz(1)
Der Vollständigkeit halber das Objekt:
!
var lampen ={ "wohnzimmer": // Lampengruppe [ "hue.0.Philips_hue.wohnzimmer.kugel", "hue.0.Philips_hue.wohnzimmer.stehlampe.oben", "hue.0.Philips_hue.wohnzimmer.stehlampe.mitte", "hue.0.Philips_hue.wohnzimmer.stehlampe.unten", "hue.0.Philips_hue.küche.kühlschrank.lc" ], "schlafzimmer": // Lampengruppe [ "hue.0.Philips_hue.schlafzimmer.decke.hinten.links", "hue.0.Philips_hue.schlafzimmer.decke.hinten.mitte", "hue.0.Philips_hue.schlafzimmer.decke.hinten.rechts", "hue.0.Philips_hue.schlafzimmer.decke.vorne.links", "hue.0.Philips_hue.schlafzimmer.decke.vorne.mitte", "hue.0.Philips_hue.schlafzimmer.decke.vorne.rechts" ], "arbeitszimmer": // Lampengruppe [ "hue.0.Philips_hue.arbeitszimmer.schreibtisch.ls", "hue.0.Philips_hue.arbeitszimmer.regal.li.re" ] }; !
Die Schleife oben soll für alle items im Objekt lampen einen Datenpunkt mit createState() anlegen.
Im Log werden alle drei enthaltenen items (wohnzimmer, schlafzimmer, arbeitszimmer) ausgegeben, wenn die Schleife durchlaufen wird. Der createState() in der selben Schleife legt aber nur die ersten beiden items (wohnzimmer und schlafzimmer an).
Ich verstehe es nicht. Warum gibt es drei Log-Einträge, aber mit createStates() werden nur zwei von drei Objekten angelegt?
-
mmhh…
bin mir nicht ganz sicher, was die Ursache war...
Jetzt sind jedenfalls alle drei items als Datenpunkt angelegt worden.
An der Funktion habe ich nichts geändert.
Was eine Ursache sein könnte ??:
Im Scriptstart ist nun eine Verzögerung von 500ms eingebaut.
D.h. die States werden angelegt. Dann geht es nach 500 ms weiter.
-
Im Scriptstart ist nun eine Verzögerung von 500ms eingebaut. `
kannst Du mir sagen wie Du dies gemacht hast? Benötige eventuell etwas ähnliches (Verzögerung)…Danke Dir.
-
frei nach Bluefox:
function main() { // ##### Scriptstart main() ##### } setTimeout(main, 500); // startet main() nach 500 ms