mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-11-05 11:40:33 +08:00
25 lines
574 B
TypeScript
25 lines
574 B
TypeScript
const dynamicIntervals = new Map<string, ReturnType<typeof setTimeout>>();
|
|
|
|
export function dynamicInterval(
|
|
key: string,
|
|
callback: () => void,
|
|
period: number,
|
|
) {
|
|
// Clear an existing interval for this key, if any.
|
|
if (dynamicIntervals.has(key)) {
|
|
clearTimeout(dynamicIntervals.get(key));
|
|
}
|
|
|
|
// Set up a new dynamic interval.
|
|
const id = setTimeout(() => {
|
|
callback();
|
|
dynamicInterval(key, callback, period);
|
|
}, period);
|
|
|
|
dynamicIntervals.set(key, id);
|
|
}
|
|
|
|
export function resetDynamicInterval(key: string) {
|
|
dynamicIntervals.delete(key);
|
|
}
|