diff --git a/packages/vite/src/client/client.ts b/packages/vite/src/client/client.ts index 5f298aeb03a68a..7ce07befc13241 100644 --- a/packages/vite/src/client/client.ts +++ b/packages/vite/src/client/client.ts @@ -328,6 +328,8 @@ async function waitForSuccessfulPing( return false } + let waitForWindowShowPromise: Promise | undefined + // eslint-disable-next-line no-constant-condition while (true) { if (document.visibilityState === 'visible') { @@ -336,7 +338,12 @@ async function waitForSuccessfulPing( } await wait(ms) } else { - await Promise.race([wait(ms), waitForWindowShow()]) + if (!waitForWindowShowPromise) { + waitForWindowShowPromise = waitForWindowShow().then(() => { + waitForWindowShowPromise = undefined + }) + } + await Promise.race([wait(ms), waitForWindowShowPromise]) } } }