我正在使用 node.js 开发一个项目。我正在提取大量 JSON 数据,我需要安排作业以根据接收到的数据将数据写入串行端口。我正在为此任务使用节点计划。有几个作业需要安排,每个作业的命令都不同。我发现在调用scheduleJob
中传递给函数的参数是在执行时解释的,而不是在 for 循环中安排的时候。关于如何使字符串参数保持不变的任何想法?
代码示例:
var schedule = require('node-schedule');
var schedules[];
…
var startrule = new schedule.RecurrenceRule();
var start_hour = thejson.start_hour;
var start_minute = thejson.start_minute;
for (var k = 0; k < thejson.zones.length; k++)
{
//start
startrule.hour = start_hour;
startrule.minute = start_minute;
var start = schedule.scheduleJob(startrule, function(){
writeSerial('//S' + thejson.zones[k].number + ',1');
});
schedules.push(start); //upon next json update, old schedules in array are cancelled.
}
当它执行时,由于未知thejson.zones[k].number
而失败。k
如何使该字符串参数writeSerial()
成为静态/常量?我已经尝试将它粘贴在一个数组中并将一个索引传递给writeSerial
计划内,但该索引变量也在计划执行时被解释。