From 5cea59da010c4f7a3a0e178cec3d1d1a5bad85ec Mon Sep 17 00:00:00 2001 From: Graeme Yeates Date: Wed, 20 Jul 2016 11:26:33 -0400 Subject: Minor cleanups to eachOfLimit --- lib/internal/eachOfLimit.js | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/lib/internal/eachOfLimit.js b/lib/internal/eachOfLimit.js index 5e83463..61fd6a4 100644 --- a/lib/internal/eachOfLimit.js +++ b/lib/internal/eachOfLimit.js @@ -7,21 +7,29 @@ import onlyOnce from './onlyOnce'; export default function _eachOfLimit(limit) { return function (obj, iteratee, callback) { callback = once(callback || noop); - obj = obj || []; - var nextElem = iterator(obj); - if (limit <= 0) { + if (limit <= 0 || !obj) { return callback(null); } + var nextElem = iterator(obj); var done = false; var running = 0; - var errored = false; - (function replenish () { - if (done && running <= 0) { + function iterateeCallback(err) { + running -= 1; + if (err) { + done = true; + callback(err); + } + else if (done && running <= 0) { return callback(null); } + else { + replenish(); + } + } - while (running < limit && !errored) { + function replenish () { + while (running < limit && !done) { var elem = nextElem(); if (elem === null) { done = true; @@ -31,18 +39,10 @@ export default function _eachOfLimit(limit) { return; } running += 1; - /* eslint {no-loop-func: 0} */ - iteratee(elem.value, elem.key, onlyOnce(function (err) { - running -= 1; - if (err) { - callback(err); - errored = true; - } - else { - replenish(); - } - })); + iteratee(elem.value, elem.key, onlyOnce(iterateeCallback)); } - })(); + } + + replenish(); }; } -- cgit v1.2.1