smarter max rate

This commit is contained in:
tresabhi committed 2026-08-13 10:29:11 -05:00
1 parent 1569de4475
commit a438eb704f
2 files changed
+92 -93

No files matched your search

+33 -2
View File
@@ -9,6 +9,37 @@ export function withinTimeLimit() {
return performance.now() < t1;
}
export function sleep() {
return new Promise((resolve) => setTimeout(resolve, 1000 / API_RATE));
export function sleep(t: number) {
return new Promise((resolve) => setTimeout(resolve, t));
}
interface MethodContext {
_break(): void;
}
let lastT = 0;
const maxDelta = 1000 / API_RATE;
const DELTA_BUFFER = 0;
export async function atMaxRate(method: (context: MethodContext) => void) {
let isBroken = false;
const context: MethodContext = {
_break() {
isBroken = true;
},
};
while (!isBroken) {
if (!withinTimeLimit()) break;
const t = performance.now();
const delta = t - lastT;
if (delta < maxDelta) {
await sleep(maxDelta - delta + DELTA_BUFFER);
}
method(context);
lastT = t;
}
}