SetInterval,无法将其分配给变量

时间:2014-02-12 08:17:55

标签: javascript setinterval

我的代码是这样的:

$(

    function(){
        $("#btn").click(
        function()
        {
            var check_timer = setInterval(
                function(){
                    console.log("here");
                    ...
                },
                1000
            );

            setTimeout(
                function(){
                    console.log("set timeout");
                },
                5000
            );

            clearInterval(check_timer);
        });
    }

)

所以这就是问题,脚本不会执行我在setInterval函数中定义的函数,除非我删除“var check_timer”,它的工作原理如下:

setInterval(
    function(){
        console.log("here");
        ...
    },
    1000
);

因为我想在一段时间后停止工作,我使用clearInterval函数,所以我需要通过setInterval启动计时器,如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

它不会执行该功能,因为您在运行前清除间隔。当您放置setTimeout代码时不会“暂停”。代码将继续执行,并且在执行超时后,将执行setTimeout

中的代码

尝试:

$(
    function(){
        $("#btn").click(
        function()
        {
            var check_timer = setInterval(
                function(){
                    console.log("here");
                    ...
                },
                1000
            );

            /*...*/

            // instead of directly clearing the timeout
            setTimeout(
                function(){
                     // clear it after a certain amount of time
                     clearInterval(check_timer);
                },
                5000
            );

        });
    }
)