我的代码是这样的:
$(
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启动计时器,如何解决这个问题?
答案 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
);
});
}
)