Prüfen, ob clearInterval genannt wurde?
-
16-09-2019 - |
Frage
Vor diesem Code:
bob = setInterval(function, 1000);
clearInterval(bob);
Gibt es nun eine Möglichkeit, zu wissen, ob das Intervall gelöscht worden ist?
Derzeit verfolge ich das selbst, durch unsetting ‚bob
‘, aber ich bin gespannt, ob meine zusätzliche Codezeile ist nicht notwendig:
clearInterval(bob);
bob = null;
if (!bob) itIsCleared();
Danke!
Lösung
Der Rückgabewert von setInterval
ist nur eine eindeutige ID Sie verwenden zurück zu clearInterval
passieren. Es ist nicht ein strukturiertes Objekt mit zusätzlichen Informationen, auch nicht fertig auf null, wenn Sie clearTimeout
nennen.
Andere Tipps
bob enthält nur eine ID des Intervalls verwendet, es zu löschen. Wenn Sie clearInterval rufen, wird es das Intervall mit dieser ID zugeordnet ist, und löscht sie. Die ID wird nicht verändert.
Beispiel:
<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>
Dies zeigt Ihnen das Intervall von id (zurückgegeben von setInterval früher). Wenn Sie das Intervall von id wissen 1 ist, können Sie einfach verwenden clearInterval (1), um das Intervall zu löschen. So Weg Einstellung bob der Verwendung auf null ist ein guter Weg, es zu tun. Seien Sie sicher, dass Bob nicht wahr zurückgibt, wenn der bob 0 passiert sein: D