From b19930564616fe49a46aa2ebeb273ce4f4a5e7db Mon Sep 17 00:00:00 2001 From: AkiChase <1003019131@qq.com> Date: Mon, 15 Apr 2024 11:52:28 +0800 Subject: [PATCH] bug(hotkey): replace setInterval with requestAnimationFrame --- src/hotkey.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/hotkey.ts b/src/hotkey.ts index e4bf563..57b4ec4 100644 --- a/src/hotkey.ts +++ b/src/hotkey.ts @@ -793,23 +793,26 @@ async function execMacro(macro: any[]) { } } -let timmerId: number = 0; +let loopFlag = false; +function execLoopCB() { + loopDownKeyCBMap.forEach((cb) => { + cb(); + }); + if (loopFlag) requestAnimationFrame(execLoopCB); +} + export function listenToKeyEvent() { document.addEventListener("keydown", keydownHandler); document.addEventListener("keyup", keyupHandler); - timmerId = setInterval(() => { - loopDownKeyCBMap.forEach((cb) => { - cb(); - }); - }, 50); - + loopFlag = true; + execLoopCB(); // setInterval(()=>console.log(loopDownKeyCBMap), 3000); } export function unlistenToKeyEvent() { document.removeEventListener("keydown", keydownHandler); document.removeEventListener("keyup", keyupHandler); - clearInterval(timmerId); + loopFlag = false; } export function initShortcuts(