diff options
author | Graeme Yeates <yeatesgraeme@gmail.com> | 2015-07-02 11:32:14 -0400 |
---|---|---|
committer | Graeme Yeates <yeatesgraeme@gmail.com> | 2015-07-02 11:35:50 -0400 |
commit | 84eb0fe61c74479839f9494ba96a7ea235d4812e (patch) | |
tree | dd61933e92e83bd2dc806d4a43b20bec725f1d05 | |
parent | c61e63b357262f627d945bd0f41aeaa02b95c361 (diff) | |
download | async-84eb0fe61c74479839f9494ba96a7ea235d4812e.tar.gz |
Partial short circuit for some* and every*
-rw-r--r-- | lib/async.js | 13 | ||||
-rw-r--r-- | package.json | 2 |
2 files changed, 8 insertions, 7 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); } diff --git a/package.json b/package.json index fb4b581..e26d3c6 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Higher-order functions and common patterns for asynchronous code", "main": "lib/async.js", "author": "Caolan McMahon", - "version": "1.2.1", + "version": "1.3.0", "keywords": [ "async", "callback", |