What is the Javascript alternative to the sleep function?

widget

Unlike Java or Python, Javascript does not have a built-in sleep function. So, how might you be able to implement a method with the same functionality as the sleep function?

A simple way to create a delay in Javascript is to use the setTimeout method. The example below would log Hello, wait two seconds, and then log World. For many, this might be enough to do the trick.

console.log("Hello");
setTimeout(() => { console.log("World!"); }, 2000);

Still, the noticeable drawback is that setTimeout is an asynchronous method, meaning that the code below will log Hello, Goodbye!, and then, World!. This could be a problem for some of your programs if you want the program to print in the order Hello, World!, and Goodbye!.

console.log("Hello");
setTimeout(() => { console.log("World!"); }, 2000);
console.log("Goodbye!");

Here’s a better way to create a delay:

function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function delayedGreeting() {
console.log("Hello");
await sleep(2000);
console.log("World!");
await sleep(2000);
console.log("Goodbye!");
}
delayedGreeting();

The sleep function above utilizes the setTimeout function to resolve a Promise after a specified number of milliseconds.

The asynchronous function allows us to return a Promise, and we use await to get the return value. With this, we can utilize the sleep method in the function to set up a delay.

Some things to know:

  • The method does not pause the entire program, only the async function

  • await only pauses the current async function

  • The ES6 feature Promise allows us to design this sleep function

New on Educative
Learn to Code
Learn any Language as a beginner
Develop a human edge in an AI powered world and learn to code with AI from our beginner friendly catalog
🏆 Leaderboard
Daily Coding Challenge
Solve a new coding challenge every day and climb the leaderboard

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved