Расписание узла не работает с переменной объекта? - PullRequest
0 голосов
/ 06 октября 2018

Я запрограммировал расписание в узле:

function setTimer(time){
  t_SD1.on_h = time.on_h;
  t_SD1.on_m = time.on_m;
  t_SD1.off_h = time.off_h;
  t_SD1.off_m = time.off_m;
   console.log(t_SD1.on_h+' '+t_SD1.on_m);
}
var j = schedule.scheduleJob({hour: t_SD1.on_h, minute: t_SD1.on_m}, function(){
  console.log('ONNNN');
  console.log('0 '+t_SD1.on_m+' '+t_SD1.on_h+' * * *');
});

Время исходит от:

var obj = JSON.parse(req.query.timer);


setTimer(obj);

Объявление:

var t_SD1 = {on_h: 14, on_m: 52, off_h: 14, off_m: 53};

ОК ... сейчаспроблема:

Когда я запускаю его без setTimer(), он работает нормально.Расписание срабатывает в 14:52.Но когда я запускаю функцию setTimer(), она не работает.

Моя консоль сообщает мне время 0 53 14 * * *

Я также пробовал с parseInt(time.on_h), но результат тот же.

1 Ответ

0 голосов
/ 06 октября 2018

Немного сложно понять, при каких условиях это происходит и не выходит из строя, но я думаю, что проблема связана с тем, что вы звоните scheduleJob() до setTimer().Я думаю, вам нужно настроить ваш первый пример так:

function setTimer(time){
  t_SD1.on_h = time.on_h;
  t_SD1.on_m = time.on_m;
  t_SD1.off_h = time.off_h;
  t_SD1.off_m = time.off_m;
   console.log(t_SD1.on_h+' '+t_SD1.on_m);

  var j = schedule.scheduleJob({hour: t_SD1.on_h, minute: t_SD1.on_m}, function(){
    console.log('ONNNN');
    console.log('0 '+t_SD1.on_m+' '+t_SD1.on_h+' * * *');
  });
}
...