mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	Support msg.rate in delay node
This commit is contained in:
		@@ -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<node.idList.length; i++ ) { node.idList[i].clear(); }
 | 
			
		||||
            node.idList = [];
 | 
			
		||||
@@ -155,27 +166,29 @@ module.exports = function(RED) {
 | 
			
		||||
            node.on("input", function(msg) {
 | 
			
		||||
                if (!node.drop) {
 | 
			
		||||
                    if (node.intervalID !== -1) {
 | 
			
		||||
                        if (msg.hasOwnProperty("rate") && node.rate !== msg.rate) {
 | 
			
		||||
                            node.rate = msg.rate;
 | 
			
		||||
                            clearInterval(node.intervalID);
 | 
			
		||||
                            node.intervalID = setInterval(sendMsgFromBuffer, node.rate);
 | 
			
		||||
                        }
 | 
			
		||||
                        if (!msg.hasOwnProperty("flush")) {
 | 
			
		||||
                            node.buffer.push(msg);
 | 
			
		||||
                            node.reportDepth();
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    else {
 | 
			
		||||
                        if (msg.hasOwnProperty("rate")) {
 | 
			
		||||
                            node.rate = msg.rate;
 | 
			
		||||
                        }
 | 
			
		||||
                        node.send(msg);
 | 
			
		||||
                        node.reportDepth();
 | 
			
		||||
                        node.intervalID = setInterval(function() {
 | 
			
		||||
                            if (node.buffer.length === 0) {
 | 
			
		||||
                                clearInterval(node.intervalID);
 | 
			
		||||
                                node.intervalID = -1;
 | 
			
		||||
                            }
 | 
			
		||||
                            if (node.buffer.length > 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);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user