summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Early <alexander.early@gmail.com>2015-07-20 14:12:18 -0700
committerAlexander Early <alexander.early@gmail.com>2015-07-20 14:12:18 -0700
commitdb7a64556097bb990ff4d5f9e3eba7b18df043eb (patch)
treedc89f5668fc3407d21f0fee1bf67620b89594f73
parent0f5c1c5ccf720be2b4ee2c1930623410e5d7ecf9 (diff)
parentca131a6bf72d72f62e2a025b810fc20a1fc93b8e (diff)
downloadasync-db7a64556097bb990ff4d5f9e3eba7b18df043eb.tar.gz
Merge pull request #853 from megawac/each
Implement eachOf via keyIterator
-rw-r--r--dist/async.js20
1 files changed, 10 insertions, 10 deletions
diff --git a/dist/async.js b/dist/async.js
index f3cfb80..a0652f3 100644
--- a/dist/async.js
+++ b/dist/async.js
@@ -224,22 +224,22 @@
async.forEachOf =
async.eachOf = function (object, iterator, callback) {
callback = _once(callback || noop);
- object = object || [];
- var size = _isArrayLike(object) ? object.length : _keys(object).length;
- var completed = 0;
- if (!size) {
- return callback(null);
- }
- _each(object, function (value, key) {
+
+ var nextKey = _keyIterator(obj);
+ var key, running = 0;
+ while ((key = nextKey()) != null) {
+ running += 1;
iterator(object[key], key, only_once(done));
- });
+ }
+ if (!running) {
+ callback (null);
+ }
function done(err) {
if (err) {
callback(err);
}
else {
- completed += 1;
- if (completed >= size) {
+ if (--running) {
callback(null);
}
}