1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-21 23:04:45 -05:00

optimize the timer ts impl, and correct the duration if less than 10

This commit is contained in:
Yorkie Liu 2018-05-31 23:28:14 +08:00 committed by Ryan Dahl
parent 942daac1da
commit 502662476a
2 changed files with 21 additions and 20 deletions

View file

@ -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

View file

@ -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
});
}