introduce TaskOnce

This commit is contained in:
2017-07-12 16:45:18 +02:00
parent 017c0789ca
commit a3699f2869
7 changed files with 101 additions and 4 deletions

View File

@@ -0,0 +1,24 @@
import * as plugins from './taskbuffer.plugins'
import { Task, ITaskFunction} from './taskbuffer.classes.task'
/**
* TaskOnce is run exactly once, no matter how often it is triggered
*/
export class TaskOnce extends Task {
hasTriggered: boolean = false
constructor (optionsArg: {
name?: string,
taskFunction: ITaskFunction
}) {
super({
name: optionsArg.name,
taskFunction: async () => {
if (!this.hasTriggered) {
this.hasTriggered = true
await optionsArg.taskFunction()
}
}
})
}
}