From 8bc81c0d32b68185d95f0a1b51b73548fa5fc749 Mon Sep 17 00:00:00 2001 From: Kazuhito Yokoi Date: Wed, 25 Sep 2019 17:42:12 +0900 Subject: [PATCH] Support msg.rate in delay node --- .../@node-red/nodes/core/function/89-delay.js | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) 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);