diff --git a/nodes/core/core/89-trigger.js b/nodes/core/core/89-trigger.js index 9a664495a..6aca2c342 100644 --- a/nodes/core/core/89-trigger.js +++ b/nodes/core/core/89-trigger.js @@ -127,16 +127,18 @@ module.exports = function(RED) { node.status({fill:"blue",shape:"dot",text:" "}); } else if ((node.extend === "true" || node.extend === true) && (node.duration > 0)) { - if (node.topics[topic].tout) { clearTimeout(node.topics[topic].tout); } if (node.op2type === "payl") { node.topics[topic].m2 = RED.util.cloneMessage(msg.payload); } + if (node.topics[topic].tout) { clearTimeout(node.topics[topic].tout); } node.topics[topic].tout = setTimeout(function() { if (node.op2type !== "nul") { var msg2 = RED.util.cloneMessage(msg); if (node.op2type === "flow" || node.op2type === "global") { node.topics[topic].m2 = RED.util.evaluateNodeProperty(node.op2,node.op2type,node,msg); } - msg2.payload = node.topics[topic].m2; - node.send(msg2); + if (node.topics[topic] !== undefined) { + msg2.payload = node.topics[topic].m2; + node.send(msg2); + } } delete node.topics[topic]; node.status({}); diff --git a/test/nodes/core/core/89-trigger_spec.js b/test/nodes/core/core/89-trigger_spec.js index 74ba19d16..53b13564a 100644 --- a/test/nodes/core/core/89-trigger_spec.js +++ b/test/nodes/core/core/89-trigger_spec.js @@ -282,7 +282,7 @@ describe('trigger node', function() { n1.emit("input", {payload:1,topic:"A"}); n1.emit("input", {payload:2,topic:"B"}); n1.emit("input", {payload:3,topic:"C"}); - setTimeout( function() { n1.emit("input", {payload:2,topic:"B"})}, 25 ); + setTimeout( function() { n1.emit("input", {payload:2,topic:"B"})}, 20 ); }); });