Sleep in JavaScript - delay between actions

Jin Yong picture Jin Yong · Apr 17, 2009 · Viewed 85.7k times · Source

Is there a way I can do a sleep in JavaScript before it carries out another action?

Example:

 var a = 1+3;
 // Sleep 3 seconds before the next action here
 var b = a + 4;

Answer

Steve Harrison picture Steve Harrison · Apr 17, 2009

You can use setTimeout to achieve a similar effect:

var a = 1 + 3;
var b;
setTimeout(function() {
    b = a + 4;
}, (3 * 1000));

This doesn't really 'sleep' JavaScript—it just executes the function passed to setTimeout after a certain duration (specified in milliseconds). Although it is possible to write a sleep function for JavaScript, it's best to use setTimeout if possible as it doesn't freeze everything during the sleep period.