diff options
author | Alexander Early <alexander.early@gmail.com> | 2015-07-02 00:27:08 -0700 |
---|---|---|
committer | Alexander Early <alexander.early@gmail.com> | 2015-07-02 00:27:08 -0700 |
commit | ac170ba5a22a7b8ffaf03ad638e8857fe7150d86 (patch) | |
tree | 5c56231accf34cd3c4a870c2cb1bdce4bbced9e2 /lib/async.js | |
parent | 69a3b67dc6e93711aa746e41366de3f54ef20704 (diff) | |
parent | 0f8d920389439707160bf7067a1a29e06ef1ec25 (diff) | |
download | async-ac170ba5a22a7b8ffaf03ad638e8857fe7150d86.tar.gz |
Merge pull request #827 from megawac/create-apply-each
Optimize applyEach* via creator function
Diffstat (limited to 'lib/async.js')
-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 52f5f2c..312000f 100644 --- a/lib/async.js +++ b/lib/async.js @@ -1147,29 +1147,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) { |