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 了解更多详情。