我正在尝试在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语言世界,所以这里我不会缺少我想要的东西!
感谢任何提示!
答案 0 :(得分:0)
如果要初始化全局变量,则可能需要在单独的流上进行初始化,并且将设置为在Node-RED启动时触发的inject节点触发。
另一种选择是通过测试在函数开始处设置设置,以查看是否已设置上下文变量。
if (global.get("lockvariable") == undefined) {
global.set('lockvariable',0);
}
...