bug(hotkey): replace setInterval with requestAnimationFrame

This commit is contained in:
AkiChase 2024-04-15 11:52:28 +08:00
parent a1719ae8bf
commit b199305646

View File

@ -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() { export function listenToKeyEvent() {
document.addEventListener("keydown", keydownHandler); document.addEventListener("keydown", keydownHandler);
document.addEventListener("keyup", keyupHandler); document.addEventListener("keyup", keyupHandler);
timmerId = setInterval(() => { loopFlag = true;
loopDownKeyCBMap.forEach((cb) => { execLoopCB();
cb();
});
}, 50);
// setInterval(()=>console.log(loopDownKeyCBMap), 3000); // setInterval(()=>console.log(loopDownKeyCBMap), 3000);
} }
export function unlistenToKeyEvent() { export function unlistenToKeyEvent() {
document.removeEventListener("keydown", keydownHandler); document.removeEventListener("keydown", keydownHandler);
document.removeEventListener("keyup", keyupHandler); document.removeEventListener("keyup", keyupHandler);
clearInterval(timmerId); loopFlag = false;
} }
export function initShortcuts( export function initShortcuts(