Je suis relativement nouveau à nodejs et mon code à l'intérieur du nœud de fonction ressemble à ceci,NodeRed, pas en mesure d'accéder aux variables dans le imbriquée pour les boucles
var temper=parseInt(msg.payload.temperature);
temp=temper;
var seconDigit=temp%10;
temp=parseInt(temp/10);
var first=temp%10;
temp=temp/10;
var count;
//msg={"payload":{"one":first,"two":seconDigit}};
//return msg;
if(msg.payload.screen=="on"){
var firstCol="*,*,#800000";
count=0;
for(var i=1;i<=2;i++){
for(var j=1;j<=6;j++){
if(count<first){
firstCol=firstCol+","+i.toString()+","+j.toString()+",#C0C0C0";
count++;
}
}
}
count=0;
for(var i=5;i<=6;i++){
for(var j=1;j<=6;j++){
if(count<seconDigit){
firstCol+=","+i.toString()+","+j.toString()+",#C0C0C0";
count++;
}
}
}
//msg={"payload":first};
//return msg;
msg={"payload":firstCol};
return msg;
}
else if(msg.payload.screen=="off"){
var firstCol="*,*,#008000";
count=0;
for(var i=1;i<=2;i++){
for(var j=1;j<=6;j++){
if(count<firstDigit){
firstCol+=","+i.toString()+","+j.toString()+",#C0C0C0";
count++;
}
}
}
count=0;
for(var i=5;i<=6;i++){
for(var j=1;j<=6;j++){
if(count<seconDigit){
firstCol=firstCol+","+i.toString()+","+j.toString()+",#C0C0C0";
count++;
}
}
}
msg={"payload":firstCol};
return msg;
}
else{
msg={"payload":"*,*,#000000"};
return msg;
}
Je ne peux pas accéder aux variables first
et seconDigit
à l'intérieur de la boucle for imbriquée, cette partie du code n'est pas en cours d'exécution. Mon résultat attendu devrait être une deux cordes. l'un est *,*,#000000
et l'autre chaîne longue basée sur la valeur temp
ressemble à quelque chose comme *,*,.....
. Mais quand je décommente le couple de lignes sur le dessus, ils semblent bien fonctionner. Qu'est-ce que je fais de mal et que dois-je changer pour accéder aux valeurs à l'intérieur de la boucle for?
Il travaille. Mais pourquoi ça marche? –
Par global.set() vous stockez d'abord la valeur de la température dans la variable globale. Donc, vous pouvez y accéder à partir de n'importe quel flux dans le programme nodered. Vous pouvez également utiliser flow.set() pour y accéder dans le même flux. –