util_task_delayed_task.js
import Task from "./task.js";
/**
* @module DelayedTask
* @fileoverview Contains DelayedTask class.
*/
/**
* @class
* @extends Task
* Task that runs after a set amount of time (delay).
*/
class DelayedTask extends Task {
/**
* Create a new delayed task.
* @param {function} func Function to run after timer has run out
* @param {number} delay Amount of time to wait before running (delay)
* @constructor
*/
constructor(func = () => {}, delay = 0) {
super();
this._func = func;
this._timer = 0;
this._delay = delay;
}
update(elapsed) {
this._timer += elapsed;
if (this._timer >= this._delay) {
this._func();
this._done = true;
}
}
}
export default DelayedTask;