我有一個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