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!

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top