【javascript】for循环内,不规则计时器一键销毁
阅读: 108 回复: 2

发布于:2021-4-12

问题描述

当我获取一组数据时,使用for循环计时器进行赋值,如何统一销毁?如下实例


funciton  按钮1(data){

    var sum=[1,2,7,5,3,1,11,4,*****]   注: Array(data.sum) 

    for(i=0;i<sum.lenght;i++){

        setTimeOut(funciton(){

            function() ceshi{

                alear(“传值成功");

             }

        },i*1000)

    }

}

问题:如何让其他按钮一次直接清除所有的定时器。



解决方案

解决方案:

思路: 我们知道,每当调用setTimeOut函数的时候会返回一个Id,我们可以通过clearTimeout(id)来销毁当前的定时器,那么如果是批量的话,我们需要把这个定时器id保存到数组中,然后统一销毁

var sum=[1, 2, 7, 5, 3, 1, 11, 4];
var timerList = [];
sum.map((item, index)=> {
timerList.push(setTimeout(function() {
console.log("ceshi");
}, index * 1000));
});

function clearAllTimer() {
timerList.map((timerId, index)=> {
clearTimeout(timerId);
});
}


 

录屏实操

录屏暂未发布,请耐心等待

发布于:2020-7-22 1楼#

问题已解决

发布于:2020-7-23 2楼#

秀啊