我有一个JavaScript函数。我使用setInterval
来控制我的功能。我还有另一个控制我的功能的逻辑。我有一个柜台,一旦发生一种情况就会增加,而另一种情况发生时会减少。现在,有时第二种情况不会发生,因此我的功能将不再恢复。 (当我的第一个情况发生时,我暂停我的功能)。因此,我想等待第二个条件最多30秒。如果它没有发生,那么我想要恢复我的功能。我有以下代码,但它不能像我期望的那样工作。会发生什么事是它每30秒恢复一次我的功能。然后,它可能会恢复,而它应该等待。有人能让我知道我的代码有什么问题吗?在JavaScript中定义一个计时器
请注意,计数器的值可能会增加到20以上。我的意思是第一个和第二个条件可能会多次出现。
function main()
{
// body
}
function increaseCounter()
{
counter += 1;
clearInterval(controller);
controlSecond = setInterval(function(){
counterSeconds += 1;
if (counterSeconds == 30)
{
counterSeconds = 0;
controller = setInterval(main, 100);
clearInterval(controlSecond);
}
}, 1000);
}
function decreaseCounter()
{
counter -= 1;
if (counter == 0)
{
counterSeconds = 0;
clearInterval(controlSecond);
controller = setInterval(main, 100);
}
}
这两个函数是如何被调用的?你可以通过jsfiddle建立一个简单的演示吗? – Joseph 2015-04-05 03:29:42
说实话,这有点困难,因为这是我的大项目的一小部分!实际上我使用PhantomJS,这两个函数是它的两个回调函数。 – Suo6613 2015-04-05 03:37:51
你必须在每个'x = setInterval(...)'语句之前加上'clearInterval(x);'。 – Wio 2015-04-07 20:48:20