myInterval = setInterval(function(){
     MyFunction();
},50);

function MyFunction()
{
    //Can I call clearInterval(myInterval); in here?
}

间隔不会停止(不会清除),如果我上面编码的很好,那么它将帮助我在其他地方寻找引起问题的原因。谢谢。

编辑:让我们假设它在调用clearInterval之前完成了一些间隔,这消除了对setTimeout的需要。

最佳答案

只要您具有保存的interval变量的作用域,就可以从任何地方取消它。

在“子”范围内:

var myInterval = setInterval(function(){
     clearInterval(myInterval);
},50);

在“同级”范围内:
var myInterval = setInterval(function(){
     foo();
},50);

var foo = function () {
    clearInterval(myInterval);
};

如果间隔超出范围,您甚至可以通过间隔:
var someScope = function () {
    var myInterval = setInterval(function(){
        foo(myInterval);
    },50);
};

var foo = function (myInterval) {
    clearInterval(myInterval);
};

09-25 11:16