Function 节点中的 For 循环仅返回第一次迭代
For loop in Function node only returning the first iteration
我正在尝试在 Node-Red 的功能节点中创建一个循环,它对我来说基本上就像一个倒数计时器。现在,当我 运行 这个节点时,我只从节点得到一个输出 msg.playload 说 "Back in 15 minutes".
我想要的是一个接一个地得到 15 个输出 "Back in 15 minutes"、"Back in 14 minutes" 等。一旦我得到它,我将添加一个延迟,以便 for 循环每次等待 1 分钟 运行s.
var totalMinutes = 15
for (var i = 0; i < 15; i++){
var minutesLeft = totalMinutes - [i];
msg.payload = {
"profile": {
"status_text": "Back in " + minutesLeft + " minutes",
"status_emoji": ":coffee:",
"status_expiration": 0
}
};
return [msg.payload];
}
return [msg];
您正在使用 return [msg.payload];
阻止代码继续。删除该行,它应该按照您想要的方式打印出来。
请注意,打印输出不等于 1 秒。为此,您可以将 setInterval()
包裹起来
查看 https://www.w3schools.com/js/js_timing.asp 了解更多详情。
我正在尝试在 Node-Red 的功能节点中创建一个循环,它对我来说基本上就像一个倒数计时器。现在,当我 运行 这个节点时,我只从节点得到一个输出 msg.playload 说 "Back in 15 minutes".
我想要的是一个接一个地得到 15 个输出 "Back in 15 minutes"、"Back in 14 minutes" 等。一旦我得到它,我将添加一个延迟,以便 for 循环每次等待 1 分钟 运行s.
var totalMinutes = 15
for (var i = 0; i < 15; i++){
var minutesLeft = totalMinutes - [i];
msg.payload = {
"profile": {
"status_text": "Back in " + minutesLeft + " minutes",
"status_emoji": ":coffee:",
"status_expiration": 0
}
};
return [msg.payload];
}
return [msg];
您正在使用 return [msg.payload];
阻止代码继续。删除该行,它应该按照您想要的方式打印出来。
请注意,打印输出不等于 1 秒。为此,您可以将 setInterval()
查看 https://www.w3schools.com/js/js_timing.asp 了解更多详情。