summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolan McMahon <caolan@caolanmcmahon.com>2012-02-26 18:28:30 -0800
committerCaolan McMahon <caolan@caolanmcmahon.com>2012-02-26 18:28:30 -0800
commit0e9092493f245388eb4fcfc07b30570907def74b (patch)
treec8647f0d085ed53557b777ca7b8eaf16982db4dc
parent7fa56c48be00e869f7467674c65a93baf8fdc86e (diff)
parentc82e885c3f4cd0bce2f02b0d6a46774fa78c89fc (diff)
downloadasync-0e9092493f245388eb4fcfc07b30570907def74b.tar.gz
Merge pull request #100 from mmalecki/foreach-no-callback
Allow `forEach*` functions to be called with no callback
-rw-r--r--lib/async.js3
-rw-r--r--test/test-async.js18
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/async.js b/lib/async.js
index 2169827..19e0b56 100644
--- a/lib/async.js
+++ b/lib/async.js
@@ -77,6 +77,7 @@
}
async.forEach = function (arr, iterator, callback) {
+ callback = callback || function () {};
if (!arr.length) {
return callback();
}
@@ -98,6 +99,7 @@
};
async.forEachSeries = function (arr, iterator, callback) {
+ callback = callback || function () {};
if (!arr.length) {
return callback();
}
@@ -123,6 +125,7 @@
};
async.forEachLimit = function (arr, limit, iterator, callback) {
+ callback = callback || function () {};
if (!arr.length || limit <= 0) {
return callback();
}
diff --git a/test/test-async.js b/test/test-async.js
index e51cea0..ff4b749 100644
--- a/test/test-async.js
+++ b/test/test-async.js
@@ -37,6 +37,12 @@ function detectIterator(call_order, x, callback) {
}, x*25);
}
+function forEachNoCallbackIterator(test, x, callback) {
+ test.equal(x, 1);
+ callback();
+ test.done();
+}
+
function getFunctionsObject(call_order) {
return {
one: function(callback){
@@ -514,6 +520,10 @@ exports['forEach error'] = function(test){
setTimeout(test.done, 50);
};
+exports['forEach no callback'] = function(test){
+ async.forEach([1], forEachNoCallbackIterator.bind(this, test));
+};
+
exports['forEachSeries'] = function(test){
var args = [];
async.forEachSeries([1,3,2], forEachIterator.bind(this, args), function(err){
@@ -546,6 +556,10 @@ exports['forEachSeries error'] = function(test){
setTimeout(test.done, 50);
};
+exports['forEachSeries no callback'] = function(test){
+ async.forEachSeries([1], forEachNoCallbackIterator.bind(this, test));
+};
+
exports['forEachLimit'] = function(test){
var args = [];
var arr = [0,1,2,3,4,5,6,7,8,9];
@@ -617,6 +631,10 @@ exports['forEachLimit error'] = function(test){
setTimeout(test.done, 25);
};
+exports['forEachLimit no callback'] = function(test){
+ async.forEachLimit([1], 1, forEachNoCallbackIterator.bind(this, test));
+};
+
exports['map'] = function(test){
var call_order = [];
async.map([1,3,2], mapIterator.bind(this, call_order), function(err, results){