Javascript 使用setInterval()将函数设置为按某个值运行

Javascript 使用setInterval()将函数设置为按某个值运行,javascript,function,if-statement,while-loop,setinterval,Javascript,Function,If Statement,While Loop,Setinterval,我创建了从1开始计数的start()函数 我希望它在经过一段时间后做一些事情,例如5秒 如何做到这一点 我尝试过使用if(timecounter==5)但不起作用 如果我把放在while(timecounter

我创建了从1开始计数的
start()
函数

我希望它在经过一段时间后做一些事情,例如5秒

如何做到这一点

我尝试过使用
if(timecounter==5)
但不起作用

如果我把
放在while(timecounter<5){continue}
中,然后从上面输入
If
语句,我进入无限循环

function start() {
    setInterval(function () {
        timecounter = timecounter + 1;
        document.getElementById('demo').innerHTML = timecounter;
    }, 1000);

    var clickArea = document.getElementById('clickBox');

    document.getElementById('boxText').style.color = 'white';

    clickArea.addEventListener("click", function () {
        counter += 1;
    });

    if (timecounter === 5) {
        alert('this');
    } //Doesn't work

}

谢谢。

就像评论中提到的一些人一样;每当计时器递增时,都需要调用测试


就像评论中提到的几个人一样;每当计时器递增时,都需要调用测试


如果您在下面查看,
setInterval
的回调函数是您可以添加支票的地方。该回调函数每次都会被调用,您将其设置为
1000

function start() {
    setInterval(function () {
        timecounter = timecounter + 1;
        document.getElementById('demo').innerHTML = timecounter;

        // this function will be the function that is getting called every second.
        // here you can put in your checks for 5 seconds.

        if (timecounter === 5) {
            // do something
        }
    }, 1000);

    var clickArea = document.getElementById('clickBox');

    document.getElementById('boxText').style.color = 'white';

    clickArea.addEventListener("click", function () {
        counter += 1;
    });
}

如果您在下面查看,
setInterval
的回调函数是您可以添加支票的地方。该回调函数每次都会被调用,您将其设置为
1000

function start() {
    setInterval(function () {
        timecounter = timecounter + 1;
        document.getElementById('demo').innerHTML = timecounter;

        // this function will be the function that is getting called every second.
        // here you can put in your checks for 5 seconds.

        if (timecounter === 5) {
            // do something
        }
    }, 1000);

    var clickArea = document.getElementById('clickBox');

    document.getElementById('boxText').style.color = 'white';

    clickArea.addEventListener("click", function () {
        counter += 1;
    });
}

为什么不使用setTimeout()?
if(timecounter==5){
将始终为false,因为您在
setInterval
中设置了
timecounter
。函数的其余部分将只触发一次。它需要在回调中。为什么不使用setTimeout()?
if(timecounter==5){
将始终为false,因为您在
setInterval
中设置了
计时器。函数的其余部分将只触发一次。它需要在回调中。