我有一个名为“showCustomer”的函数,可以获得1-5之间的数字并返回一些东西。
我想使用setInterval,每5秒运行一次这个函数,但是使用另一个数字。
它不起作用,我不明白为什么它不适合我。这是代码。
setInterval(function () {
var i = 1;
showCustomer(i);
i++;
}, 5000);
答案 0 :(得分:2)
只需在i
来电之前移动变量setInterval()
的声明:
var i = 1;
setInterval(function () {
showCustomer(i);
i++;
}, 5000);
您设置为setInterval
回调的匿名函数会在代码中每5秒调用一次。在每次通话中,您都将i
设置为1,每次都会重置它。
将i
移到setInterval
回调之外会使其保持当前值。
答案 1 :(得分:0)
每次使用var
时,都会重新声明该变量的值。所以你只应该宣布一次计数器。
每次浏览器调用回调showCustomer
时,if statement
都会评估浏览器是否应该进行新的调用。
clearInvertal()
它是停止setInterval()
方法的方法。
var id = 1;
var show5times = window.setInterval(showCustomer, 5000);
function showCustomer() {
alert(id);
id++;
if(id > 5) {
window.clearInterval(show5times);
}
}