为什么我的clearInterval不清除区间? - JavaScript

问题描述 投票:0回答:1

我有两个间隔,一个在另一个里面:

function start(start) {

    if (start) {
        firstInterval = setInterval(function () {

            console.log("firstInterval called")
            secondInterval = setInterval(function(){

                clearInterval(secondInterval)
                secondInterval = null
                console.log("secondInterval called")
            },1000)


        }, 1000)

    }else{

        clearInterval(firstInterval)
        firstInterval = null

        clearInterval(secondInterval)
        secondInterval = null

    }
}

当我按下“停止”按钮时调用 else 块,“firstInterval”被清除但“secondInterval”继续记录“secondInterval called”

为什么会发生这种情况,我该如何预防。

javascript setinterval clearinterval
1个回答
0
投票

firstInterval
正在创建多个
secondInterval
s

每次

firstInterval
发射时,它都会创建自己的
secondInterval
。只有一个
secondInterval
被清除。

要解决此问题,请将第一个更改为

setTimeout
,这样它只会触发一次。

© www.soinside.com 2019 - 2024. All rights reserved.