impl dynamic config and pause. Bump 0.3.0

This commit is contained in:
Yanzhen Yu
2018-10-16 15:31:25 +08:00
parent 49cd7b4db3
commit d827fdc947
4 changed files with 46 additions and 9 deletions

View File

@@ -1,17 +1,27 @@
const FRAME_MS = 16;
const timerMap: Map<number, boolean> = new Map();
function later(cb: () => void, delayMs: number, speed = 1) {
export function later(cb: () => void, delayMs: number, speed = 1): number {
const now = performance.now();
const id = timerMap.size + 1;
timerMap.set(id, true);
function check(step: number) {
if (!timerMap.has(id)) {
return;
}
if (step - now > delayMs / speed - FRAME_MS) {
cb();
clear(id);
} else {
requestAnimationFrame(check);
}
}
requestAnimationFrame(check);
return id;
}
export default later;
export function clear(id: number) {
timerMap.delete(id);
}