我正在使用一个发送多个输出的自定义节点插件,与通过函数节点运行相同的逻辑相比,它没有在调试窗口中显示唯一的 msg.payload。
使用常规函数节点的简单流程的快照(调试显示五个独特的有效负载):
使用包装相同代码的自定义节点的相同流的快照,但仅显示重复五次的最后有效负载:
简单的自定义节点代码:
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);
};
答案 0 :(得分:0)
解决了。使用 Node-RED 1.0 进行了切换以克隆来自 Function 节点的消息;这不适用于异步执行的自定义节点,因此在设置最后一条消息后解析多次发送 - 因此所有调试都得到相同的消息。参考:https://nodered.org/blog/2019/09/13/cloning-messages