在节点化的Javascript中使用全局变量(HowTo)

时间:2018-10-08 09:15:18

标签: javascript node-red

我正在尝试在Node-Red中使用make锁定变量。为此,我编写了以下函数!

 global.set('lockvariable',0);


 var payload  = msg.payload; 
 if (msg.payload[0].value === 0  && global.get('lockvariable')=== 0){
    msg.payload  =global.get('lockvariable');  
    global.set('lockvariable',1);

 } else if (global.get('lockvariable') === 1){
    msg.payload = global.get('lockvariable');

 }
 return msg;

我的问题是返回值始终为0。我猜是因为我在第一行写初始化!因为我来自C语言世界,所以这里我不会缺少我想要的东西!

感谢任何提示!

1 个答案:

答案 0 :(得分:0)

如果要初始化全局变量,则可能需要在单独的流上进行初始化,并且将设置为在Node-RED启动时触发的inject节点触发。

另一种选择是通过测试在函数开始处设置设置,以查看是否已设置上下文变量。

if (global.get("lockvariable") == undefined) {
  global.set('lockvariable',0);
}
...