通过全局变量的节点红色循环

时间:2018-06-22 15:55:06

标签: javascript loops node-red

使用node-red; 我将数据存储在全局变量中。我正在使用GUID作为变量的标识符。 例如:

global.set(msg.guid,{"watch":true, "command":msg.content, "custno":msg.custno, "result":msg.payload});
return msg;

在单独的流程中,我想遍历所有这些变量以检查内容并采取相应的措施。 除了以下以外,我找不到找到全局变量的方法:

global.get("theguid");

所以我必须知道所有的向导,我不知道项目的数量。

我对如何处理此问题有一些想法,但想知道我是否缺少明显的东西!

感谢阅读

1 个答案:

答案 0 :(得分:2)

一种方法是使用单个顶级上下文对象,而不是将对象分散在全局名称空间中。

例如:

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