diff options
author | Graeme Yeates <yeatesgraeme@gmail.com> | 2015-07-02 02:33:07 -0400 |
---|---|---|
committer | Graeme Yeates <yeatesgraeme@gmail.com> | 2015-07-02 02:33:07 -0400 |
commit | 0f8d920389439707160bf7067a1a29e06ef1ec25 (patch) | |
tree | 543f1b57020c1633ce71e73dfe3e1ed9effc8c0e | |
parent | fd7a99c09ceca52e629f70d0ca4cd7a387fb07c1 (diff) | |
download | async-0f8d920389439707160bf7067a1a29e06ef1ec25.tar.gz |
Optimize applyEach* via creator function
-rw-r--r-- | lib/async.js | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/lib/async.js b/lib/async.js index 67eb379..c105b69 100644 --- a/lib/async.js +++ b/lib/async.js @@ -1157,29 +1157,27 @@ }; - var _applyEach = _restParam(function _applyEach(eachfn, fns, args) { - var go = _restParam(function(args) { - var that = this; - var callback = args.pop(); - return eachfn(fns, function (fn, _, cb) { - fn.apply(that, args.concat([cb])); - }, - callback); + function _applyEach(eachfn) { + return _restParam(function(fns, args) { + var go = _restParam(function(args) { + var that = this; + var callback = args.pop(); + return eachfn(fns, function (fn, _, cb) { + fn.apply(that, args.concat([cb])); + }, + callback); + }); + if (args.length) { + return go.apply(this, args); + } + else { + return go; + } }); - if (args.length) { - return go.apply(this, args); - } - else { - return go; - } - }); + } - async.applyEach = _restParam(function (args) { - return _applyEach.apply(null, [async.eachOf].concat(args)); - }); - async.applyEachSeries = _restParam(function (args) { - return _applyEach.apply(null, [async.eachOfSeries].concat(args)); - }); + async.applyEach = _applyEach(async.eachOf); + async.applyEachSeries = _applyEach(async.eachOfSeries); async.forever = function (fn, callback) { |