From f4c372835807f5381e16c9df2a64b74b00fdbc22 Mon Sep 17 00:00:00 2001 From: Mason Bergstrom Date: Tue, 29 Aug 2017 13:55:43 -0700 Subject: [PATCH 1/2] Fixed the callback for init, now the remotes are ready before calling the callback. --- lib/lirc_node.js | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/lib/lirc_node.js b/lib/lirc_node.js index edfd946..b940bda 100644 --- a/lib/lirc_node.js +++ b/lib/lirc_node.js @@ -20,8 +20,7 @@ exports.init = function(callback) { function irsendCallback(error, stdout, stderr) { exports._populateRemotes(error, stdout, stderr); - exports._populateCommands(); - if (callback) callback(); + exports._populateCommands(callback); } return true; @@ -39,14 +38,21 @@ exports._populateRemotes = function(error, stdout, stderr) { }); }; -exports._populateCommands = function() { - for (var remote in exports.remotes) { - (function(remote) { - exports.irsend.list(remote, '', function(error, stdout, stderr) { - exports._populateRemoteCommands(remote, error, stdout, stderr); - }); - })(remote); - } +exports._populateCommands = function(callback) { + var remoteQ = []; + for (var remote in exports.remotes) { + remoteQ.push(remote); + } + populate = function(remoteQ) { + if (remoteQ.length > 0) { + var remote = remoteQ.pop(); + exports.irsend.list(remote, '', function(error, stdout, stderr) { + exports._populateRemoteCommands(remote, error, stdout, stderr); + populate(remoteQ); + }); + } else if (typeof callback === "function") callback(); + } + populate(remoteQ); }; exports._populateRemoteCommands = function(remote, error, stdout, stderr) { From b29faad6a4b253e56d7332eecab301ef343d57ce Mon Sep 17 00:00:00 2001 From: Mason Bergstrom Date: Tue, 5 Sep 2017 18:05:13 -0700 Subject: [PATCH 2/2] Woops, that function doesn't need tobe addedas a global.. --- lib/lirc_node.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/lirc_node.js b/lib/lirc_node.js index b940bda..ce31960 100644 --- a/lib/lirc_node.js +++ b/lib/lirc_node.js @@ -43,7 +43,7 @@ exports._populateCommands = function(callback) { for (var remote in exports.remotes) { remoteQ.push(remote); } - populate = function(remoteQ) { + var populate = function(remoteQ) { if (remoteQ.length > 0) { var remote = remoteQ.pop(); exports.irsend.list(remote, '', function(error, stdout, stderr) {