Подтвердить что ты не робот

Проверка того, был ли clearInterval вызван?

С учетом этого кода:

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

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

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

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

Спасибо!

4b9b3361

Ответ 1

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

Ответ 2

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