mirror of
https://github.com/denoland/deno.git
synced 2024-11-24 15:19:26 -05:00
optimize the timer ts impl, and correct the duration if less than 10
This commit is contained in:
parent
942daac1da
commit
502662476a
2 changed files with 21 additions and 20 deletions
|
@ -31,6 +31,10 @@ func InitTimers() {
|
|||
Duration: msg.TimerStartDuration,
|
||||
Cleared: false,
|
||||
}
|
||||
// If this parameter is less than 10, a value of 10 is used
|
||||
if t.Duration < 10 {
|
||||
t.Duration = 10
|
||||
}
|
||||
t.StartTimer()
|
||||
timers[id] = t
|
||||
return nil
|
||||
|
|
37
timers.ts
37
timers.ts
|
@ -39,15 +39,16 @@ function onMessage(payload: Uint8Array) {
|
|||
}
|
||||
}
|
||||
|
||||
export function setTimeout(
|
||||
function setTimer(
|
||||
cb: TimerCallback,
|
||||
duration: number,
|
||||
interval: boolean,
|
||||
// tslint:disable-next-line:no-any
|
||||
...args: any[]
|
||||
args: any[]
|
||||
): number {
|
||||
const timer = {
|
||||
id: nextTimerId++,
|
||||
interval: false,
|
||||
interval,
|
||||
duration,
|
||||
args,
|
||||
cb
|
||||
|
@ -56,34 +57,28 @@ export function setTimeout(
|
|||
dispatch.sendMsg("timers", {
|
||||
command: pb.Msg.Command.TIMER_START,
|
||||
timerStartId: timer.id,
|
||||
timerStartInterval: false,
|
||||
timerStartInterval: interval,
|
||||
timerStartDuration: duration
|
||||
});
|
||||
return timer.id;
|
||||
}
|
||||
|
||||
// TODO DRY with setTimeout
|
||||
export function setTimeout(
|
||||
cb: TimerCallback,
|
||||
duration: number,
|
||||
// tslint:disable-next-line:no-any
|
||||
...args: any[]
|
||||
): number {
|
||||
return setTimer(cb, duration, false, args);
|
||||
}
|
||||
|
||||
export function setInterval(
|
||||
cb: TimerCallback,
|
||||
repeat: number,
|
||||
// tslint:disable-next-line:no-any
|
||||
...args: any[]
|
||||
): number {
|
||||
const timer = {
|
||||
id: nextTimerId++,
|
||||
interval: true,
|
||||
duration: repeat,
|
||||
args,
|
||||
cb
|
||||
};
|
||||
timers.set(timer.id, timer);
|
||||
dispatch.sendMsg("timers", {
|
||||
command: pb.Msg.Command.TIMER_START,
|
||||
timerStartId: timer.id,
|
||||
timerStartInterval: true,
|
||||
timerStartDuration: repeat
|
||||
});
|
||||
return timer.id;
|
||||
return setTimer(cb, duration, true, args);
|
||||
}
|
||||
|
||||
export function clearTimer(id: number) {
|
||||
|
@ -92,3 +87,5 @@ export function clearTimer(id: number) {
|
|||
timerClearId: id
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue