UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

43 lines (33 loc) 1.02 kB
import { assert } from "../../../../core/assert.js"; export class PeriodicConsolePrinter { /** * * @param {number} timeout in seconds * @param {function} builderFunction * @param {*} [thisArg] */ constructor(timeout = 15, builderFunction, thisArg) { assert.isNumber(timeout, "timeout"); assert.isFunction(builderFunction, "builderFunction"); this.__timeout = timeout; this.__handle = -1; this.__method = () => { const text = builderFunction.call(thisArg); console.warn(text); }; } start() { if (this.__handle !== -1) { // some handle already exists, clear that first this.stop(); } this.__handle = setInterval(this.__method, this.__timeout * 1000); } stop() { if (this.__handle === -1) { return; } clearInterval(this.__handle); this.__handle = -1; } }