鉴于此代码:
bob = setInterval(function, 1000);
clearInterval(bob);
现在有办法知道该间隔是否已被清除?
目前,我通过取消设置“bob
”来自行跟踪,但我很好奇我是否需要额外的代码:
clearInterval(bob);
bob = null;
if (!bob) itIsCleared();
谢谢!
答案 0 :(得分:34)
setInterval
的返回值只是用于传递回clearInterval
的唯一ID 。它不是带有任何附加信息的结构化对象,也不会在您调用clearTimeout
时设置为null。
答案 1 :(得分:7)
bob只包含用于清除它的间隔的id。当您调用clearInterval时,它会获取与该id相关联的时间间隔并将其清除。 id根本没有改变。
示例:
<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>
这将显示间隔的id(之前由setInterval返回)。如果您知道间隔的id为1,则可以使用clearInterval(1)清除间隔。因此,将bob设置为null的方法是一种很好的方法。请确保!如果bob恰好为0,bob不会返回true:D
答案 2 :(得分:0)
所以这是一个很晚的答案,但如果你做这样的事情
data class MovieResponse(
@SerializedName("results")
val movieList: ArrayList<MovieModel>,
)
它将强制变量 this.myInterval = setInterval(....);
this.myInterval = clearInterval(this.myInterval);
未定义,因此您可以通过执行 myInterval