Javascript wait()函数

时间:2013-03-29 00:24:45

标签: javascript html function wait

我想创建一个javascript'wait'函数。 我该怎么编辑?

function wait(waitsecs){
setTimeout(donothing(), 'waitsecs');
}

function donothing() {

}

2 个答案:

答案 0 :(得分:47)

Javascript没有线程化,因此“等待”会冻结整个页面(并可能导致浏览器完全停止运行脚本)。

要专门解决您的问题,您应该在donothing来电中setTimeout后删除括号,并使waitsecs不是字符串的数字:

console.log('before');
setTimeout(donothing,500); // run donothing after 0.5 seconds
console.log('after');

但这不会停止执行;在您的功能运行之前将记录“之后”。

要正确等待,您可以使用匿名函数:

console.log('before');
setTimeout(function(){
    console.log('after');
},500);

所有变量仍然会出现在“之后”部分。你不应该链接这些 - 如果你发现自己需要,你需要看看你是如何构建程序的。如果需要循环,您可能还想使用setInterval / clearInterval

答案 1 :(得分:3)

你不应该编辑它,你应该完全废弃它。

任何使执行停止一段时间的尝试都会锁定浏览器并将其切换到Not Responding状态。您唯一能做的就是正确使用setTimeout