How to Delay a Function Call in JavaScript ?
Last Updated :
26 Mar, 2024
Delaying a JavaScript function call involves executing a function after a certain amount of time has passed. This is commonly used in scenarios where you want to postpone the execution of a function, such as in animations, event handling, or asynchronous operations.
Below are the methods to delay a JavaScript function call:
Using setTimeout()
The setTimeout() method schedules a function to be executed after a specified delay in milliseconds.
Syntax:
setTimeout(function, delay, arg1, arg2, ...);
Example: Printing the output after 2 seconds using setTimeout().
JavaScript
setTimeout(() => {
console.log('Function called after 2000 milliseconds');
}, 2000);
Output:
OutputsetInterval()
Similar to setTimeout(), setInterval() repeatedly calls a function with a fixed time delay between each call.
Syntax:
setInterval(function, delay, arg1, arg2, ...);
Example: Printing the each output after interval of 1 second using setTimeout().
JavaScript
let count = 0;
const intervalID = setInterval(() => {
console.log('Function called every 1000 milliseconds');
count++;
if (count === 3) {
clearInterval(intervalID);
}
}, 1000);
Output:
OutputPromises with setTimeout()
We can create a Promise and resolve it after a certain delay using setTimeout(). This allows for better handling of asynchronous operations.
Syntax:
const delayedFunction = (delay) => new Promise(resolve => setTimeout(resolve, delay));
Example: Printing the output at a delay of 3 seconds using Promises with setTimeout().
JavaScript
const delayedFunction = (delay) => new Promise(resolve => setTimeout(() => {
console.log('Function called after ' + delay + ' milliseconds');
resolve();
}, delay));
delayedFunction(3000);
Output:
OutputAsync/Await with setTimeout()
Using async/await syntax with setTimeout() allows for writing asynchronous code in a synchronous-like manner, improving code readability and maintainability.
Syntax:
async function delayedFunction(delay) {
await new Promise(resolve => setTimeout(resolve, delay));
// Your code to be executed after delay
}
Example: Printing the output at a delay of 4 seconds using Promises with setTimeout().
JavaScript
async function delayedFunction(delay) {
await new Promise(resolve => setTimeout(resolve, delay));
console.log('Function called after ' + delay + ' milliseconds');
}
delayedFunction(4000);
Output:
delayed function call using async/await along with setTimeout function
Similar Reads
How to Delay a JavaScript Function Call using JavaScript ? Delaying the execution of a JavaScript function is a powerful technique often achieved using methods like setTimeout(). This approach is commonly used in over 60% of modern web applications to manage animations, control user interactions, or handle asynchronous behavior smoothly. Whether it's for de
2 min read
How To Create a Delay Function in ReactJS ? Delay functions in programming allow for pausing code execution, giving deveÂlopers precise control over timing. These functions are essential for tasks such as content display, animations, synchronization, and managing asynchronous operations. In this article, we will discuss how can we create a d
3 min read
How to Create a Custom Callback in JavaScript? A callback is a function that executes after another function has been completed in JavaScript. As an event-driven language, JavaScript does not pause for a function to finish before moving on to the next task. Callbacks enable the execution of a function only after the completion of another, making
3 min read
How to create an Asynchronous function in Javascript? JavaScript is a single-threaded and synchronous language. The code is executed in order one at a time. But Javascript may appear to be asynchronous in some situations. Example: HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title
6 min read
How to add a delay in a JavaScript loop? JavaScript doesn't offer any wait command to add a delay to the loops but we can do so using setTimeout method. This method executes a function, after waiting a specified number of milliseconds. Below given example illustrates how to add a delay to various loops: For loop: JavaScript for (let i=0; i
3 min read