samsss 发表于 2023-10-21 14:55:02

NR上global store变量JS语法请教

本帖最后由 samsss 于 2023-10-21 15:24 编辑

新手一枚,想咨询一下各位大佬下面的JS语法应该怎么写呢:
1)给global store变量多对象赋值是这些写:
global.set('actime',{'cf':1,'etf':2},"store");

结果如图1:

但如果下一次流程赋值:
global.set('actime',{'sf':1},"store");
就不会自动往下加'sf'的对象了,直接覆盖上次的值(如下图2);

我想实现的是能自动往下加'sf'的对象和值,应该怎么写呢?
2)针对图1的变量,
我想动态取某对象的值,但JS这样写:global.set('actime','cf',"store")
就报callback must be a function的错误了,
求指教怎么写?


alei643 发表于 2023-10-21 16:46:57

本帖最后由 alei643 于 2023-10-21 16:57 编辑

1、先把全局变量的值放到临时变量中,增加临时变量的对象之后,再回传给全局变量,参考下面示例var a, b;
global.set('actime', { 'cf': 1, 'etf': 2 }, "store");
a = global.get('actime', a);
a.sf = 1;
global.set('actime', a);
b = global.get('actime', b);
msg.payload = b;
return msg;

2、获取全局变量的值是用global.get,比如var actime = global.get('actime', actime),这样就可以获取到对象的值了

samsss 发表于 2023-10-21 21:23:59

alei643 发表于 2023-10-21 16:46
1、先把全局变量的值放到临时变量中,增加临时变量的对象之后,再回传给全局变量,参考下面示例

2、获取全 ...

感谢大佬提供的临时变量思路哈,还有个疑问:
我想按前面节点传输过来的msg.topic(比如该值是cf),来动态取actime的子对象值,应该怎么写呢,
似乎直接这样写不行:
global.set('actime', a).msg.topic

alei643 发表于 2023-10-23 11:44:02

samsss 发表于 2023-10-21 21:23
感谢大佬提供的临时变量思路哈,还有个疑问:
我想按前面节点传输过来的msg.topic(比如该值是cf),来动 ...

没看明白,是要取全局变量actime的对象值,还是取msg.topic的对象值?

samsss 发表于 2023-10-23 15:43:30

alei643 发表于 2023-10-23 11:44
没看明白,是要取全局变量actime的对象值,还是取msg.topic的对象值?

msg.topic是一个动态的变量,要取全局变量actime下某个对象(对象名称就是通过msg.topic获取的,比如值是cf)的值;

alei643 发表于 2023-10-24 11:39:48

本帖最后由 alei643 于 2023-10-24 11:43 编辑

samsss 发表于 2023-10-23 15:43
msg.topic是一个动态的变量,要取全局变量actime下某个对象(对象名称就是通过msg.topic获取的,比如值是 ...
假如msg.topic的值为cf,若取全局变量中cf对象值,参考下方示例
global.set('actime', { 'cf': 1, 'etf': 2 }, "store");
var a = global.get('actime', a);
msg.payload= a;
return msg;

samsss 发表于 2023-10-24 14:35:44

alei643 发表于 2023-10-24 11:39
假如msg.topic的值为cf,若取全局变量中cf对象值,参考下方示例

就是这个,感谢!
页: [1]
查看完整版本: NR上global store变量JS语法请教