2016-11-20 6 views
-1

В узле RED Я пытаюсь создать глобальную переменную из части в теме MQTT:Как создать динамически названную глобальную переменную?

var mytopic = msg.topic; 
shortcode = mytopic.replace(/.*presence\/(.*)/, '$1'); 
global.set(shortcode, '1'); 

документация упоминает global.set('foo', 'bar'); но как установить имя переменной, Foo, динамически?

+1

Динамически созданная глобальная переменная звучит как не самое лучшее (ужасное?) Решение. Если вы объясните проблему, возможно, сообщество помогло вам решить ее лучше. – zerkms

+4

Просто основываясь на синтаксисе, но если метод set принимает две строки, или строку и какое-то другое значение, тогда не должно быть никаких причин, по которым вы не могли бы передать переменную в качестве первого параметра. не знает, предоставил ли вызывающий объект статическую строку или переменную. – Taplar

+2

Вы не сказали, почему думаете, что у вас нет, не работает – hardillb

ответ

0

Благодарим за ответы.

Как и предполагалось, на самом деле это должно работать, и это происходит. Моя ошибка лежала в другом месте. Я знаю о рисках использования глобальных переменных. Теперь я могу работать с темами MQTT, такими как «+/presence/#» (содержащий информацию о наличии разных элементов, обнаруженных несколькими датчиками) с один поток.

Смежные вопросы