@prolige

Как остановить setInterval в javascript?

Всем привет, есть функция которая запускается каждую секунду, как отключить её когда result.ok, будет равно 1?

function sec() { 

    $.ajax({
        url: 'result.php',
        type:     "get", //метод отправки
        dataType: "html", //формат данных
        data: {hash: hash},
        success: function(response) { //Данные отправлены успешно
        	result = $.parseJSON(response);
			
			

            var ok = result.ok; 
        
    	
		
		},
    	error: function(response) { // Данные не отправлены
            $('#result_form').html('Ошибка. Данные не отправлены.');
    	}
 	});



  
           }
 
 setInterval(sec, 1000)
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Лучше не интервалом, а при разборе ответа, если ok не 1, то setTimeout()
function checkResult() {
  const data = {
    hash: hash,
  }

  $.ajax({
    url: 'result.php',
    dataType: "json",
    data: data,
    success: (result) => {
      const ok = result.ok;
      if (ok != 1) {
        // перезвоните через секунду
        setTimeout(checkResult, 1000);
      }
    },
    error: (response) => { // Данные не отправлены
      $('#result_form').html('Ошибка. Данные не отправлены.');
    }
  });
}

checkResult();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@StiflerProger
Записываешь setInterval в переменную, о очищаешь через clearInterval

https://learn.javascript.ru/settimeout-setinterval
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы