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 -
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.
Tobiasneuer 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); }
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden