У меня есть функция в 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);
}
}
Как называются эти 2 функции? Можете ли вы создать простую демонстрацию через jsfiddle? – Joseph
Честно говоря, это немного сложно, так как это небольшая часть моего большого проекта! На самом деле я использую PhantomJS, и эти две функции - две из его функций обратных вызовов. – Suo6613
Вы должны поставить 'clearInterval (x);' прямо перед каждым оператором 'x = setInterval (...)'. – Wio