diff options
Diffstat (limited to 'lib/async.js')
-rw-r--r-- | lib/async.js | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/async.js b/lib/async.js index 58b11d9..abc1f7b 100644 --- a/lib/async.js +++ b/lib/async.js @@ -335,7 +335,7 @@ } function _asyncMap(eachfn, arr, iterator, callback) { - callback = callback || noop; + callback = _once(callback || noop); var results = []; eachfn(arr, function (value, index, callback) { iterator(value, function (err, v) { @@ -822,7 +822,7 @@ _arrayEach(data, function(task) { var item = { data: task, - callback: typeof callback === 'function' ? callback : noop + callback: callback || noop }; if (pos) { @@ -1077,7 +1077,14 @@ return function () { var that = this; var args = _baseSlice(arguments); - var callback = args.pop(); + + var callback = args.slice(-1)[0]; + if (typeof callback == 'function') { + args.pop(); + } else { + callback = noop; + } + async.reduce(fns, args, function (newargs, fn, cb) { fn.apply(that, newargs.concat([function () { var err = arguments[0]; |