我想创建一个JavaScript wait()函数。
我应该编辑什么?
function wait(waitsecs) {
setTimeout(donothing(), 'waitsecs');
}
function donothing() {
//
}发布于 2013-03-29 08:31:53
Javascript不是线程化的,所以“等待”将冻结整个页面(并可能导致浏览器完全停止运行脚本)。
要专门解决您的问题,您应该在setTimeout调用中删除donothing后面的括号,并将waitsecs设置为数字而不是字符串:
console.log('before');
setTimeout(donothing,500); // run donothing after 0.5 seconds
console.log('after');但这不会停止执行;"after“将在函数运行之前被记录下来。
要正确等待,您可以使用匿名函数:
console.log('before');
setTimeout(function(){
console.log('after');
},500);你所有的变量仍然在"after“部分。你不应该把这些链接起来--如果你发现自己需要这样做,你需要看看你是如何构建程序的。此外,如果需要循环,您可能希望使用setInterval / clearInterval。
发布于 2013-03-29 08:26:20
你不应该编辑它,你应该完全废弃它。
任何使执行停止一段时间的尝试都会锁定浏览器,并将其切换到无响应状态。你唯一能做的就是正确地使用setTimeout。
https://stackoverflow.com/questions/15694470
复制相似问题