Skip to content

Useful timer script written with pure JavaScript. Codes not mine, but someone from Stackoverflow.

License

Notifications You must be signed in to change notification settings

maulana-kurniawan/timerjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

PLEASE READ THIS!

This code isn't mine, but someone named Илья Зеленько post this on Stackoverflow and i found it very useful. I hope his code works for whoever need it!

How to use:

let seconds = 0
const timer = new Timer(() => {
    seconds++

    console.log('seconds', seconds)

    if (seconds === 8) {
        timer.clear()

        alert('Game over!')
    }
}, 1000)

timer.pause()
console.log('isPaused: ', timer.paused)

setTimeout(() => {
    timer.resume()
    console.log('isPaused: ', timer.paused)
}, 2500)


function Timer(callback, delay) {
    let callbackStartTime
    let remaining = 0

    this.timerId = null
    this.paused = false

    this.pause = () => {
        this.clear()
        remaining -= Date.now() - callbackStartTime
        this.paused = true
    }
    this.resume = () => {
        window.setTimeout(this.setTimeout.bind(this), remaining)
        this.paused = false
    }
    this.setTimeout = () => {
        this.clear()
        this.timerId = window.setInterval(() => {
            callbackStartTime = Date.now()
            callback()
        }, delay)
    }
    this.clear = () => {
        window.clearInterval(this.timerId)
    }

    this.setTimeout()
}

The code is written quickly and did not refactored, raise the rating of my answer if you want me to improve the code and give ES2015 version (classes).

-- Илья Зеленько

About

Useful timer script written with pure JavaScript. Codes not mine, but someone from Stackoverflow.

Resources

License

Stars

Watchers

Forks