https://jsfiddle.net/1pqznbgt/
function callSeconds(f){
setTimeout(function(){
alert("testing");
}, 500)
}
答案 0 :(得分:1)
setInterval
而不是setTimeout
(setTimeout
将执行一次,setInterval
将每隔一段时间执行一次)f
而不是匿名函数,因此:您正在寻找的是:
function callSeconds(f){
setInterval(f, 50);
}
答案 1 :(得分:0)
我看到的问题是每次调用alert()时都会停止执行JavaScript,并且每个浏览器都可以以不同方式实现警报。 setTimeout()只执行一次所以如果你调用该函数它将等待500ms并发出警告如果你想要一段代码连续运行你必须使用setInterval()函数,但你仍然有浏览器选择的问题处理alert()函数,通常一个警报暂停执行当前代码,这对我不知道的定时执行函数有什么影响。我会尝试执行不会暂停或停止执行脚本的内容。我还注意到在代码段中你没有调用会调用setTimeout函数的父函数。
答案 2 :(得分:-1)
你可以在这里做两件事之一。
首先,不要使用setTimeout
。
而是使用setInterval (f,50)
。
或以递归方式调用函数:
function foo (f){
f();
setTimeout (foo,50);
}