I need a non-interfering time delay in javascript. Specifically, I need something like:
console.log("A");
someSortOfSleepFunction(3000);
console.log("B");
console.log("C");
with the three-second sleep actually occuring between "A" and "B", i.e.
A
wait
B
C
If I use:
console.log("A");
setTimeout(function(){ console.log("B"); }, 3000);
console.log("C");
what I get, of course, is:
A
C
wait
B
I wrote a sleep function, i.e.
function mdjSleep(n) {
    var sleepStart;
    var sleepEnd;
    var sleepNow;
    sleepStart = new Date().getTime();
    sleepEnd = sleepStart + n;
    while(true) {
        sleepNow = new Date().getTime();
        if (sleepNow >= sleepEnd) {
            break;
        }
    }
}
but it interferes, i.e., when I code:
console.log("A");
mdjSleep(3000);
console.log("B");
console.log("C");
instead of
A
wait
B
C
it produces:
wait
A
B
C
Any suggestions?
