db: optimize each().

This commit is contained in:
Christopher Jeffrey 2016-09-06 01:57:53 -07:00
parent a02564e0a1
commit d41f293b40
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD

View File

@ -286,7 +286,7 @@ LowlevelUp.prototype.each = function each(options, handler, callback) {
iter = this.iterator(opt); iter = this.iterator(opt);
(function next(err, key) { function next(err, key) {
if (err && typeof err !== 'boolean') { if (err && typeof err !== 'boolean') {
return iter.end(function() { return iter.end(function() {
callback(err); callback(err);
@ -306,25 +306,29 @@ LowlevelUp.prototype.each = function each(options, handler, callback) {
} }
} }
iter.next(function(err, key, value) { iter.next(onNext);
if (err) { }
return iter.end(function() {
callback(err);
});
}
if (key === undefined && value === undefined) function onNext(err, key, value) {
return iter.end(callback); if (err) {
return iter.end(function() {
callback(err);
});
}
try { if (key === undefined && value === undefined)
handler(key, value, next, i++); return iter.end(callback);
} catch (e) {
return iter.end(function() { try {
callback(e); handler(key, value, next, i++);
}); } catch (e) {
} return iter.end(function() {
}); callback(e);
})(); });
}
}
next();
}; };
/** /**