From ff05fb14a615091071afd648d488700f9d4cdd37 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Sun, 4 Feb 2018 20:17:43 +0000 Subject: [PATCH] ensure trigger doesn't set two simultaneous timeouts --- nodes/core/core/89-trigger.js | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/nodes/core/core/89-trigger.js b/nodes/core/core/89-trigger.js index f1df7ea8b..a40b9650b 100644 --- a/nodes/core/core/89-trigger.js +++ b/nodes/core/core/89-trigger.js @@ -113,19 +113,21 @@ module.exports = function(RED) { } } else { - node.topics[topic].tout = setTimeout(function() { - var msg2 = null; - if (node.op2type !== "nul") { - 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); + if (!node.topics[topic].tout) { + node.topics[topic].tout = setTimeout(function() { + var msg2 = null; + if (node.op2type !== "nul") { + 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; + delete node.topics[topic]; + node.send(msg2); } - msg2.payload = node.topics[topic].m2; - } - delete node.topics[topic]; - node.status({}); - node.send(msg2); - }, node.duration); + node.status({}); + }, node.duration); + } } node.status({fill:"blue",shape:"dot",text:" "}); }