JSFiddle - React, Tailwind, and code Playground

by Julian Garcia Castillo

JavaScript

var Timer = function(callback, delay) {
    var timerId, start, remaining = delay;

    this.pause = function() {
        console.log('pau')

        window.clearTimeout(timerId);
        remaining -= Date.now() - start;
    };

    this.resume = function() {
    console.log('re')
        start = Date.now();
        window.clearTimeout(timerId);
        timerId = window.setTimeout(callback, remaining);
    };
    
      this.stop = ()=> {
        window.clearTimeout(timerId);
      };

    this.resume();
};

var timer = new Timer(function() {
    console.log("Done!");
    timer.stop()
}, 6000);

//timer.pause();
// Do some stuff...
//timer.resume();

setTimeout(() => {
     //console.log('paused')
     //timer.pause();
}, 2000);

setTimeout(() => {
     //console.log('resume')
     //timer.resume();
}, 10000);