所以基本上我想要这样的东西
Inter = setInterval(Function, 1000);
clearInerval(Inter);
Inter = setInterval(Function, 1000);
出于某种原因,类似的内容对我不起作用,我将其全部发布,但我没有评论,也没有组织感。这应该有用吗,还是我想念他们的东西?
编辑:好的,所以我将尝试更好地解释这一点。所以基本上,我有一个间隔设置,和一个清除所说间隔的函数。我需要在每次输入后重置它们,所以clearInterval必须识别一个与开始时具有相同ID的间隔,因此我需要基本上重新使用该ID,但是由于某些原因它不起作用。希望对疯狂的疯狂有半点了解
答案 0 :(得分:2)
您可以创建一个开始/停止间隔的类。
class Interval {
constructor(duration, callback) {
this.duration = duration
this.callback = callback
}
get interval() { return this._interval }
set interval(interval) { this._interval = interval }
get duration() { return this._duration }
set duration(duration) { this._duration = duration }
get callback() { return this._callback }
set callback(callback) { this._callback = callback }
start() {
this.interval = setInterval(this.callback, this.duration)
return this
}
stop() {
clearInterval(this.interval)
return this
}
}
实例
let interval = new Interval(
1000,
() => {
console.log('interval')
}
)
interval.start()
setTimeout(() => {
interval.stop()
}, 5000)
答案 1 :(得分:0)
不能。间隔id“是一个非零的数字值,它标识通过调用setInterval()创建的计时器”,并且会自动生成。
我建议您更改代码的逻辑,但是,如果您坚持要这样做,可以将所有id添加到数组中,并将其作为参数传递给删除间隔的函数。然后您将在中断间隔时拼接ID。