From 7bc70a1955ec38815ef10ed056bdb5e66b3ee4e4 Mon Sep 17 00:00:00 2001 From: Yanlong Wang Date: Wed, 7 May 2025 22:38:50 +0800 Subject: [PATCH] fix: wait-for-selector stalling process --- src/services/puppeteer.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/services/puppeteer.ts b/src/services/puppeteer.ts index 0e8d8a0..3b0eb5a 100644 --- a/src/services/puppeteer.ts +++ b/src/services/puppeteer.ts @@ -1210,7 +1210,6 @@ export class PuppeteerControl extends AsyncService { } await Promise.race([Promise.allSettled([...pageScriptEvaluations, ...frameScriptEvaluations]), delayPromise]) .catch(() => void 0); - finalizationPromise = doFinalization(); return stuff; }); if (options.waitForSelector) { @@ -1232,16 +1231,16 @@ export class PuppeteerControl extends AsyncService { }); return p as any; }); - + finalizationPromise = Promise.allSettled([waitForPromise, gotoPromise]).then(doFinalization); + } else { + finalizationPromise = gotoPromise.then(doFinalization); } try { let lastHTML = snapshot?.html; while (true) { - const ckpt = [nextSnapshotDeferred.promise, gotoPromise]; - if (waitForPromise) { - ckpt.push(waitForPromise); - } + const ckpt = [nextSnapshotDeferred.promise, waitForPromise ?? gotoPromise]; + if (options.minIntervalMs) { ckpt.push(delay(options.minIntervalMs)); }