From 2abd3729d8c13f3f4104ab1b2b7f360646e3e856 Mon Sep 17 00:00:00 2001 From: Javier Portillo Date: Mon, 8 Jun 2020 20:31:22 -0600 Subject: [PATCH] fix: clear qr refresh interval on client.destroy() (#249) * fix: client.destroy() keeps trying to get QR code when client is not authorized yet Co-authored-by: Javier Portillo --- src/Client.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Client.js b/src/Client.js index 877c8cd..74d9e72 100644 --- a/src/Client.js +++ b/src/Client.js @@ -118,11 +118,12 @@ class Client extends EventEmitter { this.emit(Events.QR_RECEIVED, qr); }; getQrCode(); - let retryInterval = setInterval(getQrCode, this.options.qrRefreshIntervalMs); + this._qrRefreshInterval = setInterval(getQrCode, this.options.qrRefreshIntervalMs); // Wait for code scan await page.waitForSelector(KEEP_PHONE_CONNECTED_IMG_SELECTOR, { timeout: 0 }); - clearInterval(retryInterval); + clearInterval(this._qrRefreshInterval); + this._qrRefreshInterval = undefined; } @@ -352,6 +353,9 @@ class Client extends EventEmitter { * Closes the client */ async destroy() { + if (this._qrRefreshInterval) { + clearInterval(this._qrRefreshInterval); + } await this.pupBrowser.close(); }