Проверка того, был ли вызван clearInterval?
-
16-09-2019 - |
Вопрос
Учитывая этот код:
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