setTimeout drives me crazy. How can I implement "sleep" without going insane?
But, to answer your question:
// some code runs here
var continue = function(data){ //more code runs in here after sleep }
setTimeout(function(){ continue(data); },2000);
A different pattern:
var obj = { sleep: function(fn, time){ setTimeout(fn, time ); }, func1: function(data){ console.log('Continuing'); }, init: function(data){
console.log('Starting');
obj.sleep(obj.func1, 2000);
}
}
obj.init() function sleep(time, continuation) {
setTimeout(continuation, time);
}
function start_process(x) {
var y = foo(x);
sleep(1000, function() {
var z = bar(x, y);
sleep(2000, function() {
baz(x, y, z);
});});
}
start_process(42);If you really, really wanted to you could create a busy wait sleep function, but it's an awful idea and you should never do it.