我需要在JavaScript中没有干扰的时间延迟。具体来说,我需要类似的东西:
console.log("A");
someSortOfSleepFunction(3000);
console.log("B");
console.log("C");
三秒钟的睡眠实际上发生在“ A”和“ B”之间,即
A
wait
B
C
如果我使用:
console.log("A");
setTimeout(function(){ console.log("B"); }, 3000);
console.log("C");
我得到的当然是:
A
C
wait
B
我写了一个睡眠函数,即
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;
}
}
}
但是会干扰,即在我编码时
console.log("A");
mdjSleep(3000);
console.log("B");
console.log("C");
代替
A
wait
B
C
它产生:
wait
A
B
C
有什么建议吗?