Проблема с setInterval

108
30 сентября 2019, 00:20

Всем привет, есть такая функция , каждую секунду я опрашиваю метод, если он true то я отслеживаю некоторые данные, когда он становится false, то стоплю отслеживание и перехожу по некому урлу. Вопрос как сделать так,чтобы setInterval при значении метода false переставал работать (например проблема в том,что он открывает вкладку каждую секунду,вместо одного раза)

function startInterval () {
    // то что выполняется в самом интервале
    var tick = function () {
        if (window.isStart().answer) {
            // стартует отслеживание
            startAjaxTracking()
            startConsoleTracking()
        } else {
            // останавливает отслеживание
            stopAjaxTracking()
            stopConsoleTracking()
            var browserInfo = getBrowserInfo()

            window.SaveUser(
                null,
                window.consoleTrackingLog,
                window.ajaxTrackingLog,
                null
            )
            window.open(window.url)
        }
    }
    interval = setInterval(tick, 1000);
    if (!window.isStart().answer) {
        clearInterval(interval)
        interval = null
    }
}
Answer 1

Если я правильно понимаю, вам достаточно переместить остановку в саму повторяющуюся функцию:

function startInterval () {
    var interval = setInterval(tick, 1000);
    function tick() {
       if (window.isStart().answer) {
           // ...
       } else {
            clearInterval(interval);
          // ...
       }
   }
}
READ ALSO
jQuery. Дубликаты значений

jQuery. Дубликаты значений

Трудность в следующем: берется шаблон (тег template) из html файлаПри нажатии по кнопке создается разметка из шаблона в html файле, на котором навешивается...

91
Клик в любом месте страницы для удаления класса элемента

Клик в любом месте страницы для удаления класса элемента

Есть на странице видеоролик с ютюба с маской на немПо клику - я эту маску убираю, добавлением класса без маски

123
Как сохранить изменения DataGridView1 через OdbcDataAdapter в БД

Как сохранить изменения DataGridView1 через OdbcDataAdapter в БД

Не могу сохранить изменения DataGridView1 в БД

124