Vérifier si clearInterval a été appelé?
-
16-09-2019 - |
Question
Compte tenu de ce code:
bob = setInterval(function, 1000);
clearInterval(bob);
Y at-il maintenant un moyen de savoir si cet intervalle a été effacé?
À l'heure actuelle, je garde une trace de moi-même, par MHS « bob
», mais je suis curieux de savoir si ma ligne de code supplémentaire est inutile:
clearInterval(bob);
bob = null;
if (!bob) itIsCleared();
Merci!
La solution
La valeur de retour de setInterval
est juste un identifiant unique vous utilisez pour passer revenir à clearInterval
. Ce n'est pas un objet structuré avec toute information complémentaire, ni ne se définie sur null lorsque vous appelez clearTimeout
.
Autres conseils
bob ne contient qu'un identifiant de l'intervalle utilisé pour l'effacer. Lorsque vous appelez clearInterval, il obtient l'intervalle associé à cet identifiant et efface. L'identifiant ne change pas du tout.
voir ici pour la démonstration
exemple:
<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>
Cela vous montrera l'identifiant de l'intervalle (retourné par setInterval plus tôt). Si vous connaissez l'ID de l'intervalle est 1, vous pouvez simplement utiliser clearInterval (1) pour effacer l'intervalle. Ainsi, votre façon d'utiliser bob paramètre null est une bonne façon de le faire. Assurez-vous simplement que Bob ne retourne pas vrai si le bob arrive à 0.: D