node-red循环遍历全局变量
node-red loop through global variables
使用节点红色;
我将数据存储在全局变量中。我使用 guid 作为变量的标识符。
例如:
global.set(msg.guid,{"watch":true, "command":msg.content, "custno":msg.custno, "result":msg.payload});
return msg;
在一个单独的流程中,我想遍历所有这些变量来检查内容并采取相应的行动。
除了以下之外,我找不到获取全局变量的方法:
global.get("theguid");
所以我必须知道所有的guid,而我不知道项目的数量。
我对如何处理这个问题有一些想法,但想知道我是否遗漏了一些明显的东西!
感谢阅读
一种方法是使用单个顶级上下文对象,而不是将对象分散在全局命名空间中。
例如:
var myObjects = global.get("myObjects");
myObjects[msg.guid] = {"watch":true, "command":msg.content, "custno":msg.custno, "result":msg.payload};
global.set("myObjects",myObjects);
return msg;
然后您可以检索 myObjects
对象并使用所有标准 JavaScript 函数来处理它:
var myObjects = global.get("myObjects");
var listOfGuids = Object.keys(myObject);
// etc
使用节点红色; 我将数据存储在全局变量中。我使用 guid 作为变量的标识符。 例如:
global.set(msg.guid,{"watch":true, "command":msg.content, "custno":msg.custno, "result":msg.payload});
return msg;
在一个单独的流程中,我想遍历所有这些变量来检查内容并采取相应的行动。 除了以下之外,我找不到获取全局变量的方法:
global.get("theguid");
所以我必须知道所有的guid,而我不知道项目的数量。
我对如何处理这个问题有一些想法,但想知道我是否遗漏了一些明显的东西!
感谢阅读
一种方法是使用单个顶级上下文对象,而不是将对象分散在全局命名空间中。
例如:
var myObjects = global.get("myObjects");
myObjects[msg.guid] = {"watch":true, "command":msg.content, "custno":msg.custno, "result":msg.payload};
global.set("myObjects",myObjects);
return msg;
然后您可以检索 myObjects
对象并使用所有标准 JavaScript 函数来处理它:
var myObjects = global.get("myObjects");
var listOfGuids = Object.keys(myObject);
// etc