From 82e9d023012b983c49321b81e07f61553b1adff9 Mon Sep 17 00:00:00 2001 From: KaoSDlanor Date: Fri, 27 Jan 2023 10:16:30 +0200 Subject: [PATCH] fixed querying a view retaining the memory of the return --- .../node_modules/pouchdb-abstract-mapreduce/src/index.js | 6 ++++-- .../pouchdb-abstract-mapreduce/src/taskqueue.js | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/node_modules/pouchdb-abstract-mapreduce/src/index.js b/packages/node_modules/pouchdb-abstract-mapreduce/src/index.js index 7f9333ba46..1bf777b336 100644 --- a/packages/node_modules/pouchdb-abstract-mapreduce/src/index.js +++ b/packages/node_modules/pouchdb-abstract-mapreduce/src/index.js @@ -708,7 +708,7 @@ function createAbstractMapReduce(localDocName, mapper, reducer, ddocValidator) { view.seq = currentSeq; view.sourceDB.activeTasks.remove(taskId); } catch (error) { - view.sourceDB.activeTasks.remove(taskId, error); + view.sourceDB.activeTasks.remove(taskId, error); } } @@ -763,9 +763,11 @@ function createAbstractMapReduce(localDocName, mapper, reducer, ddocValidator) { } function queryView(view, opts) { - return sequentialize(getQueue(view), function () { + const queue = getQueue(view); + sequentialize(queue, function () { return queryViewInQueue(view, opts); })(); + return queue.finish(); } async function queryViewInQueue(view, opts) { diff --git a/packages/node_modules/pouchdb-abstract-mapreduce/src/taskqueue.js b/packages/node_modules/pouchdb-abstract-mapreduce/src/taskqueue.js index 3d8acbf946..685b6df58b 100644 --- a/packages/node_modules/pouchdb-abstract-mapreduce/src/taskqueue.js +++ b/packages/node_modules/pouchdb-abstract-mapreduce/src/taskqueue.js @@ -19,7 +19,9 @@ class TaskQueue { } finish() { - return this.promise; + const output = this.promise; + this.promise = this.promise.then(() => {}); // Release reference to the return value of this.promise so it can be garbage collected + return output; } }