JavaScript睡眠/等待,然后继续
我有一个JavaScript代码,需要添加一个sleep/wait函数。我正在运行的代码已经在函数中,例如:JavaScript睡眠/等待,然后继续,javascript,jquery,delay,sleep,wait,Javascript,Jquery,Delay,Sleep,Wait,我有一个JavaScript代码,需要添加一个sleep/wait函数。我正在运行的代码已经在函数中,例如: function myFunction(time) { alert('time starts now'); //code to make the program wait before continuing alert('time is up') } 我听说一个可能的解决办法可能包括 setTimeout 但我不知道在这种情况下如何使用它 我不能使用PHP,因
function myFunction(time)
{
alert('time starts now');
//code to make the program wait before continuing
alert('time is up')
}
我听说一个可能的解决办法可能包括
setTimeout
但我不知道在这种情况下如何使用它
我不能使用PHP,因为我的服务器不支持它,尽管使用jQuery也可以。JS没有睡眠函数,它有或函数 如果可以将暂停后需要运行的代码移动到
setTimeout()
回调中,则可以执行以下操作:
//code before the pause
setTimeout(function(){
//do what you need here
}, 2000);
请参见此处的示例:
这不会停止脚本的执行,但由于setTimeout()
是一个异步函数,因此
console.log("HELLO");
setTimeout(function(){
console.log("THIS IS");
}, 2000);
console.log("DOG");
将在控制台中打印此内容:
HELLO
DOG
THIS IS
(请注意,DOG在这是之前打印)
您可以使用以下代码模拟短期睡眠:
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
例如:
请注意,此代码将使脚本忙n毫秒。这不仅会停止在页面上执行Javascript,而且根据浏览器的实现,可能会使页面完全无响应,也可能使整个浏览器无响应。换句话说,这样做几乎总是错误的。代码应该是
setTimeout(函数(){alert('time is up')},time)代码>(而不是\`行和它下面的
警报`行),时间是以毫秒为单位给出的,您为什么要让脚本等待?谢谢大家。是否可以在脚本中调用一个函数sleepNow(time),例如sleepNow(5000)来休眠5秒?函数sleep(_ms=0){var_start=new Date().getTime();而(_ms>(new Date().getTime()-_start)){}我想重新打开这个问题。因为在这里我们可以给出只与浏览器相关的答案,它会冻结浏览器,如果您睡眠时间超过10秒,浏览器会显示警报:此页面上的脚本可能正忙,或者可能已停止响应。您可以立即停止脚本,在调试器中打开脚本,或让脚本继续。
。您好!这是一个繁忙的等待循环。当然,这不是可接受的答案。这会锁定浏览器,占用大量cpu,如果暂停时间过长,会导致移动设备上的执行中断setTimeout()
涉及回调,这意味着它是异步的。OP要求一些暂停的东西,这是同步的,会导致中断。我正在寻找一个繁忙的循环用于调试目的,所以即使这不是用于生产环境,它也正是我所寻找的。
sleep(1000);