NEWS
Wie kann man einem Scheduler Callback einen Wert übergeben?
-
Hi Zusammen,
ich habe einen Skript Frage, hoffentlich hat einer eine gute Idee dazu. Ich möchte dynamisch viele Scheduler anlegen, die dann im Callback jeweils einen übergebenen datapoint state setzen.Leider sehe ich keine Möglichkeit dem Callback den Wert zu übergeben. Habt Ihr ne Idee bzw. vielleicht eine Alternative Lösung?
Hier meine Ausgangssituation:
Array mit den Einträgen für die Schedules angelegt werden sollen:
var list = [ {time:"21:31", dp_execute:"a"}, {time:"21:32", dp_execute:"b"}, {time:"21:33", dp_execute:"c"}, ];
In einer Schleife legen ich alle Scheduler an.
for (var i=0; i<list.length;i++) { var item = list[i]; schedule('{"time":{"exactTime":true,"start":"'+item.time+'"},"period":{"days":1}}', function () { console.log(item.dp_execute); }); }
Der Callback gibt den letzten Inhalt der var item aus:
20:33:00.011 info javascript.0 (2568927) script.js.licht.test: c 20:34:00.008 info javascript.0 (2568927) script.js.licht.test: c ...
Habt Ihr ne Idee wie ich dem Callback die variable item übergeben kann damit a,b,c anstelle von c,c,c ausgegben würde.
Danke für Eure Tipps.
Tobias -
neuer Scope für item, damit scheint es zu gehen:
var list = [ {time:"22:33", dp_execute:"a"}, {time:"22:34", dp_execute:"b"}, {time:"22:35", dp_execute:"c"}, ]; for (var i=0; i<list.length;i++) { var item = list[i]; (function(item) { schedule('{"time":{"exactTime":true,"start":"'+item.time+'"},"period":{"days":1}}', function () { console.log(item.dp_execute); } ); })(item); }