clearInterval下面的代码是否会在setInterval中执行?

时间:2015-01-28 14:43:38

标签: javascript function setinterval

var myvar = setInterval (function(){
    if (true) {
       clearInterval(myvar);
    }
    alert('333');
},1000);

据我所知,alert('333');在执行上面的代码时会出现一次(你可以在控制台中测试它)。 我是对的吗?

if内的语句为真时,排除执行此提醒的最佳方式是什么,以便在if下执行任何操作。

2 个答案:

答案 0 :(得分:2)

  

排除执行此提醒的最佳方式是什么,以便在

下面执行任何操作

使用return

var myfunc = setInterval (function(){
    if (true) {
       clearInterval(myfunc);
       return;//now no further code will run
    }
    alert('333');
},1000);

答案 1 :(得分:2)

  

据我看警报(' 333');在执行上面的代码时会出现一次(您可以在控制台中测试它)。我是对的吗?

是的,你是对的。第一次调用回调会清除间隔,然后代码继续并执行alert。随后将不会对回调进行调用。

  

排除执行此提醒的最正确方法是什么,因此如果内部的语句为true,则无法执行任何操作。

使用elsereturn

else

var myvar = setInterval (function(){
    if (true) {
       clearInterval(myvar);
    } else {
       alert('333');
    }
},1000);

return

var myvar = setInterval (function(){
    if (true) {
       clearInterval(myvar);
       return;
    }
    alert('333');
},1000);