定时器清除不了的问题

时间:2020-12-05 23:22:31

最近我遇到了一个问题:

点击btn就增加一个定时器,点击btn1就clear定时器。

但是我发现当多次点击btn增加定时器后,虽然timer 变量也在外面,那么btn1根本清除不了,虽然我打印出来的timer也是最后一个。

 1 <body>
 2     <button id="btn">aa</button>
 3     <button id="btn1">cancel</button>
 4     <script>
 5         var timer;  //虽然timer在外面
 6         btn.onclick = function () { //点击后增加一个定时器
 7             timer = setInterval(function () {
 8                 console.log(timer) //我连续点击多次btn后,每次都打印最后一个定时器
 9             }, 500)
10         }
11         btn1.onclick = function () {
12             console.log("timer" + timer)//虽然这里显示的是最后一个定时器,
13             clearInterval(timer)        //但是无法清理掉最后一个定时器。点击很多次也不行。
14         }
15     </script>
16 </body>

 

于是,我在每次开启定时器的时候都clearInteval(timer)就解决了这个问题:

可能是定时器很多导致了定时器混乱???我不知道