From 98cd59e3e7bd14f77d5f31dbc4115a9de9d26db1 Mon Sep 17 00:00:00 2001 From: Brian C Date: Thu, 29 Jul 2021 17:17:15 -0500 Subject: [PATCH] Return promise on cursor end (#2589) * Return promise on cursor end * Remove redudant if --- packages/pg-cursor/index.js | 15 +++++---------- packages/pg-cursor/test/close.js | 11 +++++++++++ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/packages/pg-cursor/index.js b/packages/pg-cursor/index.js index b77fd597..ddfb2b4c 100644 --- a/packages/pg-cursor/index.js +++ b/packages/pg-cursor/index.js @@ -208,20 +208,15 @@ class Cursor extends EventEmitter { } if (!this.connection || this.state === 'done') { - if (cb) { - return setImmediate(cb) - } else { - return - } + setImmediate(cb) + return promise } this._closePortal() this.state = 'done' - if (cb) { - this.connection.once('readyForQuery', function () { - cb() - }) - } + this.connection.once('readyForQuery', function () { + cb() + }) // Return the promise (or undefined) return promise diff --git a/packages/pg-cursor/test/close.js b/packages/pg-cursor/test/close.js index e63512ab..b34161a1 100644 --- a/packages/pg-cursor/test/close.js +++ b/packages/pg-cursor/test/close.js @@ -23,6 +23,17 @@ describe('close', function () { }) }) + it('can close a finished cursor a promise', function (done) { + const cursor = new Cursor(text) + this.client.query(cursor) + cursor.read(100, (err) => { + assert.ifError(err) + cursor.close().then(() => { + this.client.query('SELECT NOW()', done) + }) + }) + }) + it('closes cursor early', function (done) { const cursor = new Cursor(text) this.client.query(cursor)