作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个 JavaScript 代码,我需要添加一个 sleep /等待函数。我正在运行的代码已经在一个函数中,例如:
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 在 THIS IS 之前打印)
您可以使用以下代码来模拟短时间的 sleep :
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,而且根据浏览器的实现,可能会使页面完全无响应,并可能使整个浏览器无响应。换句话说,这几乎总是错误的做法。
关于JavaScript sleep /等待,然后再继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16873323/
我是一名优秀的程序员,十分优秀!