You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
18 lines
531 B
18 lines
531 B
|
4 months ago
|
import {Timer, now} from "./timer.js";
|
||
|
|
|
||
|
|
export default function(callback, delay, time) {
|
||
|
|
var t = new Timer, total = delay;
|
||
|
|
if (delay == null) return t.restart(callback, delay, time), t;
|
||
|
|
t._restart = t.restart;
|
||
|
|
t.restart = function(callback, delay, time) {
|
||
|
|
delay = +delay, time = time == null ? now() : +time;
|
||
|
|
t._restart(function tick(elapsed) {
|
||
|
|
elapsed += total;
|
||
|
|
t._restart(tick, total += delay, time);
|
||
|
|
callback(elapsed);
|
||
|
|
}, delay, time);
|
||
|
|
}
|
||
|
|
t.restart(callback, delay, time);
|
||
|
|
return t;
|
||
|
|
}
|