在noderedjavascript中使用全局变量(HowTo)

在noderedjavascript中使用全局变量(HowTo),javascript,node-red,Javascript,Node Red,我正在尝试使用一个节点Red中的锁变量。为此,我编写了以下函数 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'

我正在尝试使用一个节点Red中的锁变量。为此,我编写了以下函数

 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世界,我不明白我在这里错过了什么


谢谢你的提示

如果要初始化全局变量,可能需要在单独的流上进行初始化,并将injectnode设置为在node-RED启动时触发以触发它

另一个选项是在函数开始时通过测试对设置进行选通,以查看上下文变量是否已设置

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