From 2d61a43fba45c3174db75556e405cb8e48c3ab71 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Sat, 27 Aug 2016 15:19:51 -0700 Subject: [PATCH] db: fix level-js iterators. --- lib/db/level.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/db/level.js b/lib/db/level.js index 9c6a691f..3a93b6c2 100644 --- a/lib/db/level.js +++ b/lib/db/level.js @@ -105,11 +105,18 @@ function Iterator(db, options) { options.keyAsBuffer = false; this.db = db; this.iter = db.level.iterator(options); + this._end = false; } Iterator.prototype.next = function(callback) { var self = this; this.iter.next(function(err, key, value) { + // Hack for level-js: it doesn't actually + // end iterators -- it keeps streaming keys + // and values. + if (self._end) + return; + if (err) { callback(err); return; @@ -137,6 +144,7 @@ Iterator.prototype.seek = function seek(key) { }; Iterator.prototype.end = function end(callback) { + this._end = true; this.iter.end(callback); };