mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-20 06:20:11 +00:00
30 lines
554 B
TypeScript
30 lines
554 B
TypeScript
export function createRafBatch(run: () => void) {
|
|
let rafId: number | null = null
|
|
|
|
const schedule = () => {
|
|
if (rafId != null) return
|
|
rafId = requestAnimationFrame(() => {
|
|
rafId = null
|
|
run()
|
|
})
|
|
}
|
|
|
|
const cancel = () => {
|
|
if (rafId != null) {
|
|
cancelAnimationFrame(rafId)
|
|
rafId = null
|
|
}
|
|
}
|
|
|
|
const flush = () => {
|
|
if (rafId == null) return
|
|
cancelAnimationFrame(rafId)
|
|
rafId = null
|
|
run()
|
|
}
|
|
|
|
const isScheduled = () => rafId != null
|
|
|
|
return { schedule, cancel, flush, isScheduled }
|
|
}
|