function sleep(milliseconds) { var start = new Date().getTime(); for (var i = 0; i < 1e7; i++) { if ((new Date().getTime()) - start > milliseconds){ break; } } } onmessage = function(e) { console.log('Message received from main script'); console.log("Sleeping for +"e*2000/1000+" seconds"); sleep((1+e)*2000); postMessage("woot"); }