diff options
Diffstat (limited to 'lib/async.js')
-rw-r--r-- | lib/async.js | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/async.js b/lib/async.js index a914542..68317d4 100644 --- a/lib/async.js +++ b/lib/async.js @@ -456,15 +456,16 @@ async.detectSeries = doSeries(_detect); function _createTester(eachfn, check, defaultValue) { - return function(arr, limit, iterator, main_callback) { + return function(arr, limit, iterator, cb) { function done() { - main_callback(defaultValue); + if (cb) cb(defaultValue); } function iteratee(x, _, callback) { + if (!cb) return callback(); iterator(x, function (v) { - if (check(v)) { - main_callback(!defaultValue); - main_callback = noop; + if (cb && check(v)) { + cb(!defaultValue); + cb = false; } callback(); }); @@ -472,7 +473,7 @@ if (arguments.length > 3) { eachfn(arr, limit, iteratee, done); } else { - main_callback = iterator; + cb = iterator; iterator = limit; eachfn(arr, iteratee, done); } |