【问题标题】:Nodered node Output for each item in Array of unknown length未知长度数组中每个项目的节点输出
【发布时间】:2021-12-20 01:49:23
【问题描述】:

我有一个 msg.payload,里面装满了一系列项目,有时是 2 个,有时是 20 个。我需要将它们传递到一个不同的节点,该节点一次只接受一个项目来处理..

我确信有一些简单的东西,但我无法解决。可以指点一下吗?

我能想到的最好的方法是一个可能有 30 个输出的函数,我只是将它们全部传递,有时我猜我会传递 null。但是必须有一个更简单的方法——如果有 200 个呢..

【问题讨论】:

    标签: node-red


    【解决方案1】:

    split 节点就是这样做的。如果msg.payload 是(比如说)20 个项目的数组,它会将其拆分为 20 条消息以传递到您的不同节点。

    或者,您可以根据需要使用function 节点,只有一个输出。循环数组并使用node.send(newMsg),其中newMsg 对每个项目都有一个新的有效负载。在这种情况下,您应该在之后调用 node.done(),因为您的函数本身不会返回消息。

    【讨论】:

    • 分割节点是正确的答案,如果您使用功能节点,您需要确保在附加消息中保留任何其他 msg 属性。拆分节点还添加了有关消息总数的合适元数据,如果需要,这些元数据对于以后重新组装数组很有用。
    猜你喜欢
    • 2010-10-14
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    相关资源
    最近更新 更多