JavaScript在继续之前先休眠/等待
JavaScript sleep/wait before continuing
我有一个JavaScript代码,我需要添加一个睡眠/等待函数。我正在运行的代码已经在一个函数中,例如:
function myFunction(time)
{
alert('time starts now');
//code to make the program wait before continuing
alert('time is up')
}
我听说一个可能的解决方案可能包括
setTimeout
但是我不知道在这种情况下如何使用它。
我不能使用PHP,因为我的服务器不支持它,虽然使用jQuery会很好。
JS没有睡眠函数,它有setTimeout()或setInterval()函数。
如果您可以将暂停后需要运行的代码移动到setTimeout()
回调中,您可以这样做:
//code before the pause
setTimeout(function(){
//do what you need here
}, 2000);
参见这里的例子:http://jsfiddle.net/9LZQp/
这不会停止脚本的执行,但是由于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;
}
}
}
现在,如果你想睡1秒,只需使用:
sleep(1000);
示例:http://jsfiddle.net/HrJku/1/
请注意,这段代码将使您的脚本在n毫秒内忙碌。这不仅会停止在页面上执行Javascript,而且根据浏览器的实现,可能会使页面完全无响应,并可能使整个浏览器无响应。换句话说,这几乎总是错误的。
相关文章:
- 单击按钮以等待单击按钮
- React组件等待所需道具进行渲染
- 正在等待呈现图表,直到加载数据为止
- 在等待ajax请求时显示微调器并禁用页面
- Javascript在for循环中等待处理请求
- JavaScript循环并等待函数
- 在等待异步任务时永久循环
- 在通过child.print()打印之前,我如何等待图像加载到我的新窗口中
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- 等待300毫秒,然后使用jQuery向下滑动菜单
- 等待循环调用的所有承诺完成
- 等待回调函数执行
- RxJS等待承诺解决
- WIll window.addEventListener(“加载”,function(),false);等待浏览器自动填
- Casperjs等待资源
- draggableCursor没有't更改为等待光标
- 如何使请求等待上一个请求完成
- 更改css链接并等待加载新的css
- 让ng更改等待$watch完成
- JavaScript在继续之前先休眠/等待