From d7370876422b4216e6135256eb6231a16edbf4c5 Mon Sep 17 00:00:00 2001 From: Ovis Maximus Date: Sat, 30 Jan 2016 11:39:42 +0100 Subject: [PATCH 1/2] call callback after fetching remote commands --- lib/lirc_node.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/lirc_node.js b/lib/lirc_node.js index edfd946..0873853 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,11 +38,19 @@ exports._populateRemotes = function(error, stdout, stderr) { }); }; -exports._populateCommands = function() { +exports._populateCommands = function(callback) { + var openForks = 0; + var collector = function () { + if (--openForks <= 0) { + if (callback) callback(); + } + }; for (var remote in exports.remotes) { (function(remote) { + openForks++; exports.irsend.list(remote, '', function(error, stdout, stderr) { exports._populateRemoteCommands(remote, error, stdout, stderr); + collector(); }); })(remote); } From 37071a23330b7b6f8aebf645578e821a208d3527 Mon Sep 17 00:00:00 2001 From: Ovis Maximus Date: Mon, 1 Feb 2016 07:25:35 +0100 Subject: [PATCH 2/2] refactoring: remove no-loop-func es-lint would reject --- lib/lirc_node.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/lirc_node.js b/lib/lirc_node.js index 0873853..d1ee0da 100644 --- a/lib/lirc_node.js +++ b/lib/lirc_node.js @@ -38,21 +38,23 @@ exports._populateRemotes = function(error, stdout, stderr) { }); }; +function fetchCommandsForRemote(callback, remote){ + exports.irsend.list(remote, '', function(error, stdout, stderr) { + exports._populateRemoteCommands(remote, error, stdout, stderr); + callback(); + }); +} + exports._populateCommands = function(callback) { var openForks = 0; var collector = function () { if (--openForks <= 0) { - if (callback) callback(); + if (callback) callback(); } }; for (var remote in exports.remotes) { - (function(remote) { - openForks++; - exports.irsend.list(remote, '', function(error, stdout, stderr) { - exports._populateRemoteCommands(remote, error, stdout, stderr); - collector(); - }); - })(remote); + openForks++; + fetchCommandsForRemote(collector, remote); } };