节点红色调试节点未显示自定义节点的唯一有效负载

时间:2021-04-11 01:03:30

标签: node-red

我正在使用一个发送多个输出的自定义节点插件,与通过函数节点运行相同的逻辑相比,它没有在调试窗口中显示唯一的 msg.payload。

使用常规函数节点的简单流程的快照(调试显示五个独特的有效负载): Simple flow using a function node

使用包装相同代码的自定义节点的相同流的快照,但仅显示重复五次的最后有效负载: Same flow with a simple custom node

简单的自定义节点代码:

module.exports = function(RED) {
    function SimpleNode(config) {
        RED.nodes.createNode(this, config);
        var node = this;

        node.on('input', function(msg, send, done) {
            var name = msg.payload.name;
            var count = msg.payload.count;

            for (var i = 0; i < count; i++) {
                msg.payload = "Hello, " + name + i;
                console.log("msg", msg);
                send(msg);
            }
        });
    }

    RED.nodes.registerType("simple", SimpleNode);
};

1 个答案:

答案 0 :(得分:0)

解决了。使用 Node-RED 1.0 进行了切换以克隆来自 Function 节点的消息;这不适用于异步执行的自定义节点,因此在设置最后一条消息后解析多次发送 - 因此所有调试都得到相同的消息。参考:https://nodered.org/blog/2019/09/13/cloning-messages