diff --git a/packages/node_modules/@node-red/nodes/core/function/89-delay.js b/packages/node_modules/@node-red/nodes/core/function/89-delay.js index ebb16bd5f..071379ff4 100644 --- a/packages/node_modules/@node-red/nodes/core/function/89-delay.js +++ b/packages/node_modules/@node-red/nodes/core/function/89-delay.js @@ -88,6 +88,17 @@ module.exports = function(RED) { }; } + var sendMsgFromBuffer = function() { + if (node.buffer.length === 0) { + clearInterval(node.intervalID); + node.intervalID = -1; + } + if (node.buffer.length > 0) { + node.send(node.buffer.shift()); + } + node.reportDepth(); + } + var clearDelayList = function(s) { for (var i=0; i 0) { - node.send(node.buffer.shift()); - } - node.reportDepth(); - }, node.rate); + node.intervalID = setInterval(sendMsgFromBuffer, node.rate); } } else { + if (msg.hasOwnProperty("rate")) { + node.rate = msg.rate; + } var timeSinceLast; if (node.lastSent) { timeSinceLast = process.hrtime(node.lastSent);