From 462597b43c219f29d28ed8e91f5168289574fdd1 Mon Sep 17 00:00:00 2001 From: sapphi-red Date: Mon, 3 Apr 2023 16:59:13 +0900 Subject: [PATCH] fix: avoid creating multiple promises --- packages/vite/src/client/client.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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]) } } }