summaryrefslogtreecommitdiff
path: root/lib/async.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/async.js')
-rw-r--r--lib/async.js20
1 files changed, 15 insertions, 5 deletions
diff --git a/lib/async.js b/lib/async.js
index 8b467eb..f0e3adf 100644
--- a/lib/async.js
+++ b/lib/async.js
@@ -456,8 +456,11 @@
async.detectSeries = doSeries(_detect);
function _createTester(eachfn, check, defaultValue) {
- return function(arr, iterator, main_callback) {
- eachfn(arr, function (x, _, callback) {
+ return function(arr, limit, iterator, main_callback) {
+ function done() {
+ main_callback(defaultValue);
+ }
+ function iteratee(x, _, callback) {
iterator(x, function (v) {
if (check(v)) {
main_callback(!defaultValue);
@@ -465,15 +468,22 @@
}
callback();
});
- }, function () {
- main_callback(defaultValue);
- });
+ }
+ if (arguments.length > 3) {
+ eachfn(arr, limit, iteratee, done);
+ } else {
+ main_callback = iterator;
+ iterator = limit;
+ eachfn(arr, iteratee, done);
+ }
};
}
async.any =
async.some = _createTester(async.eachOf, identity, false);
+ async.someLimit = _createTester(async.eachOfLimit, identity, false);
+
async.all =
async.every = _createTester(async.eachOf, notId, true);