У меня есть часть Javascript, которая проверяет состояние (через вызов AJAX) каждые n секунд. Если это условие истинно, оно перестает проверяться. Я реализовал его следующим образом:
var stopTimer;
var timerId = setInterval(function() {
/* Make Ajax Calls and set stopTimer */
if (stopTimer) {
clearInterval(timerId);
}
}, 10000);
Однако я нахожу неустойчивое поведение: иногда работает, но в других случаях он постоянно проверяет. Я проверил, что (насколько это возможно) в любой части кода нет ошибки.
Поэтому я подозреваю, что вызов clearInterval внутри обработчика setInterval может быть виновником. Это правильно? Можно ли вызвать clearInterval внутри обработчика setInterval?
Благодарим за внимание.