Build a count down in Node.js
Hello programmers, In this article I will show you how we can build a simple countdown app in Nodejs.
Before we get started with the building process, we need to know a few concepts. Let’s first discuss them one by one.
1. setInterval()
The setInterval function helps us execute a block of code repeatedly after a given interval of time. The code runs repeatedly until it is stopped.
Syntax –
setInterval ( expression, interval );
2. clearInterval()
The clearInterval function helps to stop further calls by the setInterval function.
Syntax –
// This line of code will run expression repeatedly after given interval of time.
let id = setInterval ( expression, interval );
// This line of code will stop the repeatedly calling of expression after 6000 ms.
setTimeout(() => { clearInterval(id);}, 6000);
As we are clear with our basic concepts of setInterval() and clearInterval() we can proceed further to build our app using these functions.
First, we will define our timer starting time
//Here we are starting with 15 seconds. let time = 15;
As we need to update the current remaining time each second, it is obvious we will be using setInterval() function to update the current remaining time and print it.
// Here we are starting with 15 seconds. let time = 15; // Here our update function will run every 1000 ms or 1 sec. // We will be writing our logic of updating time and printing it in update function. let countdown = setInterval(update, 1000);
Now it’s time to define our update function. I will first write the code and explain every step inside the same with comments.
let time = 15;
let countdown = setInterval(update, 1000);
function update() {
// Here were are calculating minutes and second from given time.
let min = Math.floor(time / 60);
let sec = time % 60;
//Here we are printing our current time.
console.log(`${min}:${sec}`);
// Here we are reducing our time by 1. As this function is called every 1 sec so our time will reduce by 1 every 1 second.
time--;
// Stop when min and sec are 0.
if (min == 0 && sec == 0) clearInterval(countdown);
}As of now, our code is complete and our output will look like this if we give time as 15.
0:15 0:14 0:13 0:12 0:11 0:10 0:9 0:8 0:7 0:6 0:5 0:4 0:3 0:2 0:1 0:0
As you can see 10 is printed as 0:10 but 9 is printed as 0:9 instead of 0:09. We can format this as well.
// formatting our sec to be two digit if less than 10. sec = sec < 10 ? "0" + sec : sec;
Our final code looks like this –
let time = 15;
let countdown = setInterval(update, 1000);
function update() {
let min = Math.floor(time / 60);
let sec = time % 60;
sec = sec < 10 ? "0" + sec : sec;
console.log(`${min}:${sec}`);
time--;
if (min == 0 && sec == 0) clearInterval(countdown);
}Output –
0:15 0:14 0:13 0:12 0:11 0:10 0:09 0:08 0:07 0:06 0:05 0:04 0:03 0:02 0:01 0:00
You may also learn,
Leave a Reply