mirror of
https://github.com/cheveguerra/whatsapp-web.js.git
synced 2026-04-19 20:19:14 +00:00
fix: dont crash when calling .destroy() while waiting for qr scan (#1172)
fixes #739 fixes #951
This commit is contained in:
@@ -109,7 +109,7 @@ class Client extends EventEmitter {
|
|||||||
const KEEP_PHONE_CONNECTED_IMG_SELECTOR = '[data-icon="intro-md-beta-logo-dark"], [data-icon="intro-md-beta-logo-light"], [data-asset-intro-image-light="true"], [data-asset-intro-image-dark="true"]';
|
const KEEP_PHONE_CONNECTED_IMG_SELECTOR = '[data-icon="intro-md-beta-logo-dark"], [data-icon="intro-md-beta-logo-light"], [data-asset-intro-image-light="true"], [data-asset-intro-image-dark="true"]';
|
||||||
|
|
||||||
if (this.options.session) {
|
if (this.options.session) {
|
||||||
// Check if session restore was successfull
|
// Check if session restore was successful
|
||||||
try {
|
try {
|
||||||
await page.waitForSelector(KEEP_PHONE_CONNECTED_IMG_SELECTOR, { timeout: this.options.authTimeoutMs });
|
await page.waitForSelector(KEEP_PHONE_CONNECTED_IMG_SELECTOR, { timeout: this.options.authTimeoutMs });
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@@ -168,10 +168,22 @@ class Client extends EventEmitter {
|
|||||||
this._qrRefreshInterval = setInterval(getQrCode, this.options.qrRefreshIntervalMs);
|
this._qrRefreshInterval = setInterval(getQrCode, this.options.qrRefreshIntervalMs);
|
||||||
|
|
||||||
// Wait for code scan
|
// Wait for code scan
|
||||||
await page.waitForSelector(KEEP_PHONE_CONNECTED_IMG_SELECTOR, { timeout: 0 });
|
try {
|
||||||
clearInterval(this._qrRefreshInterval);
|
await page.waitForSelector(KEEP_PHONE_CONNECTED_IMG_SELECTOR, { timeout: 0 });
|
||||||
this._qrRefreshInterval = undefined;
|
clearInterval(this._qrRefreshInterval);
|
||||||
|
this._qrRefreshInterval = undefined;
|
||||||
|
} catch(error) {
|
||||||
|
if (
|
||||||
|
error.name === 'ProtocolError' &&
|
||||||
|
error.message &&
|
||||||
|
error.message.match(/Target closed/)
|
||||||
|
) {
|
||||||
|
// something has called .destroy() while waiting
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await page.evaluate(ExposeStore, moduleRaid.toString());
|
await page.evaluate(ExposeStore, moduleRaid.toString());
|
||||||
|
|||||||
Reference in New Issue
Block a user