diff --git a/private/react-native-fantom/runner/global-setup/globalTeardown.js b/private/react-native-fantom/runner/global-setup/globalTeardown.js index cea77bda3fb..45855696d66 100644 --- a/private/react-native-fantom/runner/global-setup/globalTeardown.js +++ b/private/react-native-fantom/runner/global-setup/globalTeardown.js @@ -55,8 +55,9 @@ async function stopMetroServer(metroServer: MetroServer): Promise { metroServer.closeIdleConnections(); } + let timeoutId; const timeout = new Promise(resolve => { - setTimeout(() => { + timeoutId = setTimeout(() => { // $FlowFixMe[method-unbinding] Node 18.2+ API if (typeof metroServer.closeAllConnections === 'function') { /* $FlowFixMe[incompatible-type] Error exposed after fixing this typing @@ -67,5 +68,9 @@ async function stopMetroServer(metroServer: MetroServer): Promise { }, SHUTDOWN_TIMEOUT_MS); }); - await Promise.race([closed, timeout]); + try { + await Promise.race([closed, timeout]); + } finally { + clearTimeout(timeoutId); + } }