Вопрос

Учитывая этот код:

bob = setInterval(function, 1000);
clearInterval(bob);

Есть ли теперь способ узнать, был ли этот интервал очищен?

В настоящее время я сам отслеживаю это, отключая 'bob', но мне любопытно, не нужна ли моя дополнительная строка кода:

clearInterval(bob);
bob = null;
if (!bob) itIsCleared();

Спасибо!

Это было полезно?

Решение

Возвращаемое значение setInterval это всего лишь уникальный идентификатор вы используете, чтобы вернуться к clearInterval.Это не структурированный объект с какой-либо дополнительной информацией, и при вызове ему не присваивается значение null clearTimeout.

Другие советы

bob содержит только идентификатор интервала, используемого для его очистки.Когда вы вызываете clearInterval, он получает интервал, связанный с этим идентификатором, и очищает его.Идентификатор вообще не изменился.

смотрите здесь для демонстрации

пример:

<html>
<head>
<title>Javascript clearInterval</title>
</head>
<body onload="startInterval();">

<center>
    <div id="myTime"></div>

    <input type="button" value="start Interval" onclick="startInterval();" />

    <input type="button" value="stop Interval" onclick="stopInterval();" />
</center>

<script language="javascript">

var interval;

function startInterval()
{
    // setInterval of 1000 milliseconds i.e. 1 second
    // to recall the startTime() method again n again
    interval = setInterval("startTime();", 1000);
}

function startTime()
{
    // Date object to get current time
    var timeFormat = new Date();

    // set the current time into the HTML div object.
    document.getElementById('myTime').innerHTML = timeFormat.toLocaleTimeString();
}

function stopInterval()   //***********IMPORTANT FUNC******************
{
    // clearInterval to stop the setInterval event
    alert(interval);  
    clearInterval(1);

}

</script> 

</body>
</html>

Это покажет вам идентификатор интервала (возвращенный setInterval ранее).Если вы знаете, что идентификатор интервала равен 1, вы можете просто использовать clearInterval(1), чтобы очистить интервал.Таким образом, ваш способ использования установки bob в null - хороший способ сделать это.Просто убедитесь в этом!bob не возвращает true, если значение bob равно 0.:D

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top