diff --git a/packages/userscript/source/UserScript.ts b/packages/userscript/source/UserScript.ts index 5137581d..42a3c963 100644 --- a/packages/userscript/source/UserScript.ts +++ b/packages/userscript/source/UserScript.ts @@ -192,6 +192,8 @@ export class UserScript { } static async waitForGame(timeout = 30000): Promise { + const signals: Array> = [sleep(2000)]; + if (isNil(UserScript._gameStartSignal) && typeof dojo !== "undefined") { UserScript._gameStartSignal = new Promise(resolve => { UserScript._gameStartSignalResolver = resolve; @@ -203,6 +205,10 @@ export class UserScript { }); } + if (!isNil(UserScript._gameStartSignal)) { + signals.push(UserScript._gameStartSignal); + } + if (timeout < 0) { throw new Error("Unable to find game page. Giving up."); } @@ -213,7 +219,7 @@ export class UserScript { cdebug(`Waiting for game... (timeout: ${Math.round(timeout / 1000)}s)`); - await Promise.race([UserScript._gameStartSignal, sleep(2000)]); + await Promise.race(signals); return UserScript.waitForGame(timeout - 2000); }