summaryrefslogtreecommitdiff
path: root/lib/async.js
diff options
context:
space:
mode:
authormtone <realsmash2000@yahoo.com>2014-06-09 21:37:49 -0400
committerGraeme Yeates <yeatesgraeme@gmail.com>2015-07-02 11:26:43 -0400
commit06813bffd737a183d01e0fa89d70a31635019676 (patch)
tree72679044212de5213c97f2e5bd0d37bbcd36dd6e /lib/async.js
parent0ed159afd094ff1446fce6d616064f9c31fb7d2a (diff)
downloadasync-06813bffd737a183d01e0fa89d70a31635019676.tar.gz
Added async.someLimit
When checking if a folder contains subfolders or not (fs.readdir -> fs.stat -> some(is_a_Folder)), getting crashes when listing Windows shares from Ubuntu VM. someLimit avoids the problem. Test for someLimit added anyLimit alias and updated doc. removed anyLimit alias
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);