我有这个功能
function ReFresh() {
// myScript
setTimeout('ReFresh()', 60000);
}
这会在60秒后执行myScript,但我不希望这样。我想要的是立即执行myScript,然后每60秒重复一次myScript。
答案 0 :(得分:2)
所以请手动调用ReFresh
:
function ReFresh() {
// myScript
setTimeout(ReFresh, 60000);
}
ReFresh();
同时避免使用string作为setTimeout
的参数,而是传递函数引用。
答案 1 :(得分:2)
您可以使用立即调用的函数:
(function ReFresh() {
setTimeout(ReFresh, 60000);
}());
另外:尽量不要将字符串传递给setTimeout
(有时称为"implied eval"),只需传递函数名称。
这是一个使用clearTimeout的版本:
var num = 0, timer;
(function myScript() {
if (num === 10) {
clearTimeout(timer);
} else {
console.log(num);
num++;
timer = setTimeout(myScript, 1000);
}
}());