summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraeme Yeates <yeatesgraeme@gmail.com>2015-07-02 11:32:14 -0400
committerGraeme Yeates <yeatesgraeme@gmail.com>2015-07-02 11:35:50 -0400
commit84eb0fe61c74479839f9494ba96a7ea235d4812e (patch)
treedd61933e92e83bd2dc806d4a43b20bec725f1d05
parentc61e63b357262f627d945bd0f41aeaa02b95c361 (diff)
downloadasync-84eb0fe61c74479839f9494ba96a7ea235d4812e.tar.gz
Partial short circuit for some* and every*
-rw-r--r--lib/async.js13
-rw-r--r--package.json2
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",