@tempest/core
Version:
The core of the Tempest Stream Library
29 lines (25 loc) • 663 B
text/typescript
import { Task, ScheduledTask, Scheduler } from '../interfaces'
export class PredeterminedTask implements ScheduledTask {
public task: Task
public time: number
public period: number
private scheduler: Scheduler
public active: boolean
constructor (delay: number, period: number, task: Task, scheduler: Scheduler) {
this.time = delay
this.period = period
this.task = task
this.scheduler = scheduler
this.active = true
}
run (): void {
this.task.run(this.time)
}
error (err: Error): void {
this.task.error(this.time, err)
}
dispose (): void {
this.scheduler.cancel(this)
return this.task.dispose()
}
}