From 0de6b79203844870e56b8d3e4ae56798a9e43dc8 Mon Sep 17 00:00:00 2001 From: Holden Rohrer Date: Tue, 24 Dec 2019 17:47:59 -0500 Subject: Improved jarvis.js queueing --- examples/jarvis.js | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) (limited to 'examples') diff --git a/examples/jarvis.js b/examples/jarvis.js index f5a3ce2..d60bc44 100644 --- a/examples/jarvis.js +++ b/examples/jarvis.js @@ -56,25 +56,22 @@ function identity(sender){ let response = new Space(); response.adhoc('yes, my liege'); + let queue = []; // Must be expanded to handle actual use cases let open = true; -function send(){ - if (queue.length == 0) open = true; +function dequeue(){ + if (queue.length == 0) + open = true; else{ - main.write(queue.shift()); - setTimeout(send, 1000); + open = false; + main.write(queue.shift()) // Make more general (possibly a function pointer or a conf variable) + setTimeout(dequeue, 1000); } } + function respond(coord){ - response.loc = coord; console.log('called at', coord); - if (open){ - main.write(response.towrite()); - open = false; - setTimeout(send, 1000); - } else { - queue.push(response.towrite()); - } - send(response.towrite()); - main.write(response.towrite()); + response.loc = coord; + queue.push(response.towrite()); + if (open) dequeue(); } -- cgit