//single event i.e. alarm, time in milliseconds
var timeout = setTimeout(function(){yourFunction()},10000);
//repeated events, gap in milliseconds
var interval = setInterval(function(){yourFunction()},1000);
// this example takes 2 seconds to run
const start = Date.now();
// After a certain amount of time, run this to see how much time passed.
const milliseconds = Date.now() - start;
console.log('Seconds passed = ' + millis / 1000);
// Seconds passed = *Time passed*
Timers are used to execute a piece of code at a set time or also to repeat the code in a given interval of time.
This is done by using the functions
1. setTimeout
2. setInterval
3. clearInterval
The setTimeout(function, delay) function is used to start a timer that calls a particular function after the mentioned delay.
The setInterval(function, delay) function is used to repeatedly execute the given function in the mentioned delay and only halts when cancelled.
The clearInterval(id) function instructs the timer to stop.
// great timer class, can start() stop() reset() and getTime()
class Timer {
constructor () {
this.isRunning = false;
this.startTime = 0;
this.overallTime = 0;
}
_getTimeElapsedSinceLastStart () {
if (!this.startTime) {
return 0;
}
return Date.now() - this.startTime;
}
start () {
if (this.isRunning) {
return console.error('Timer is already running');
}
this.isRunning = true;
this.startTime = Date.now();
}
stop () {
if (!this.isRunning) {
return console.error('Timer is already stopped');
}
this.isRunning = false;
this.overallTime = this.overallTime + this._getTimeElapsedSinceLastStart();
}
reset () {
this.overallTime = 0;
if (this.isRunning) {
this.startTime = Date.now();
return;
}
this.startTime = 0;
}
getTime () {
if (!this.startTime) {
return 0;
}
if (this.isRunning) {
return this.overallTime + this._getTimeElapsedSinceLastStart();
}
return this.overallTime;
}
}
const timer = new Timer();
timer.start();
setInterval(() => {
const timeInSeconds = Math.round(timer.getTime() / 1000);
document.getElementById('time').innerText = timeInSeconds;
}, 100)
// timer start
console.time('filter array');
const visibleTodos = getFilteredTodos(todos, filter);
// timer end
console.timeEnd('filter array');