关于settimeout的快速问题,它是否像setinterval一样定期执行?
假设我的行有setTimeout("functionx();" , 1000)
,
functionx()只执行一次(1秒后)?或者是这样的:
感谢
答案 0 :(得分:6)
setTimeout
是一次性的,你给它的功能只被调用一次。
(偏离主题:请注意,您几乎从不想给setTimeout
或setInterval
一个包含代码的字符串;而是给它一个实际的函数引用。)
所以这会在半秒之后调用函数foo
(这些事情不准确):
function foo() {
display("Hi there");
}
setTimeout(foo, 500);
......然而,这将会每隔半秒左右调用,直到你停止它为止:
var timer = setInterval(foo, 500);
// Somewhere else, stop it:
clearInterval(timer);
答案 1 :(得分:1)
使用setTimeout()
,在指定的延迟后,该功能只会执行 。
单次执行正是与setInterval()
的区别,后者会重复调用该函数。
答案 2 :(得分:0)
setTimeout将在给定的毫秒后执行给定的函数。 setInterval将每隔给定的毫秒执行给定的函数。如果你想让setTimeout像setInterval一样工作,你必须使你指定的函数递归。