Javascript 计时器只能通过null赋值而不是clearTimeout()销毁

Javascript 计时器只能通过null赋值而不是clearTimeout()销毁,javascript,timer,settimeout,setinterval,clearinterval,Javascript,Timer,Settimeout,Setinterval,Clearinterval,我试图通过clearTimeout()销毁前一个计时器,找出我的简单节流功能无法正常工作的原因。它就是不起作用,只有null赋值让我摆脱了这个陷阱 知道为什么吗?谢谢 代码: const throttler=({event,callback,delay,target})=>{ 设timerID=null const eventSubscribeTarget=目标| |窗口 常数resizeThrottler=()=>{ 如果(timerID)返回 timerID=setTimeout(()=>{

我试图通过
clearTimeout()
销毁前一个计时器,找出我的简单节流功能无法正常工作的原因。它就是不起作用,只有
null
赋值让我摆脱了这个陷阱

知道为什么吗?谢谢

代码:

const throttler=({event,callback,delay,target})=>{
设timerID=null
const eventSubscribeTarget=目标| |窗口
常数resizeThrottler=()=>{
如果(timerID)返回
timerID=setTimeout(()=>{
回调函数()
timerID=null/(
clearTimeout
-
clearInterval
mixup-aside…) 在这里:

因此,将timerId值设置为null将导致提前返回,而不会设置新的超时。我想这正是我们所追求的

    timerID = setTimeout(() => {
      callback()
      timerID = null // <= only by null assigment it's gonna gone...
      // clearTimeout(timerID) doesn't work here
是无法执行的行。

clearTimeout
-
clearInterval
mixup aside…) 在这里:

因此,将timerId值设置为null将导致提前返回,而不会设置新的超时。我想这正是我们所追求的

    timerID = setTimeout(() => {
      callback()
      timerID = null // <= only by null assigment it's gonna gone...
      // clearTimeout(timerID) doesn't work here

是无法执行的行。
setTimeout()
的结果始终返回一个
数字。此数字表示所设置计时器的ID值。将此值与
clearTimeout()
方法一起使用可取消计时器

clearTimeout函数不会重置该数字,这就是为什么要重用此变量时必须将
timerID
设置为
null


设置超时()的结果总是返回一个
数字
。该数字表示设置的计时器的ID值。将该值与
clearTimeout()
方法一起使用可取消计时器

clearTimeout函数不会重置该数字,这就是为什么要重用此变量时必须将
timerID
设置为
null


对不起,我输入了一个类型。我使用了
clearTimeout
来处理计时器…>实际上不再需要清除超时---不,在setTimeout运行期间,
timerID
变量中的计时器
ID
已经存储(我通过
console.log()
)但是
clearTimeout()
未将其输入…是的,但首先输入内部内容的值
setTimeout()
被计算,然后它被分配新的值。
clearTimeout
清除旧的超时。不,我有完全相同的计时器
ID
,在函数内部的所有更新过程中,它不会被破坏…抱歉,我做了一个类型。我用
clearTimeout
来处理计时器…>真的没有超时了要清除---不,在setTimeout运行期间,
timerID
变量内的计时器
ID
已经存储(我通过
console.log()
)看到它,但是
clearTimeout()
没有将其放入…是的,但首先是
setTimeout()内的值
被计算,然后它被分配新的值。
clearTimeout
清除旧的超时。不,我有完全相同的计时器
ID
,在函数内部的所有更新过程中,它不会被破坏……我知道你上面提到的所有内容,同时它不是一个解决方案,也不是陷阱的焦点,因为我的计时器ID是存储在
timedID
变量中,但由于某些原因
clearTimeout()
没有正确地看到它…我知道您上面提到的所有内容,同时它不是一个解决方案,也不是陷阱的焦点,因为我的计时器ID存储在
timedID
变量中,但出于某些原因
clearTimeout()
没有正确地看到它。。。
    timerID = setTimeout(() => {
      callback()
      timerID = null // <= only by null assigment it's gonna gone...
      // clearTimeout(timerID) doesn't work here
    timerID = setTimeout(() => {