setInterval in ES6 Class

by Guillaume Seguin

HTML

<div id="counter">0</div>

Babel + JSX

class CallFrenquently {

  constructor(callback) {
    this.intervalID = undefined;
    this.callback = callback;
    this.delay = 1000;
  }

  start() {
    this.stop();
    if (this.delay >= 0) {
      this.intervalID = setInterval(this.callback, this.delay);
    }
  }

  stop() {
    clearInterval(this.intervalID);
  }
}

const callback = () => {
	let value = parseInt(document.getElementById('counter').innerHTML, 10);
	document.getElementById('counter').innerHTML = value++;
};

const test = new CallFrenquently(callback);
test.start();