2012-03-17 56 views
7

我想知道是否有辦法讓setInterval明確自己。Javascript setInterval清除自己?

事情是這樣的:

setInterval(function() { 
    alert(1); 
    clearInterval(this); 
}, 2000); 

我想如果它完成它會阻止它繼續檢查的事情。

+1

在這個例子中,至少,它將使更多的意義只是使用'setTimeout'。 – 2012-03-17 04:08:06

+0

也許你更喜歡'setTimeout'而不是 – vol7ron 2012-03-17 04:09:03

+0

agh GGG打我吧:) – vol7ron 2012-03-17 04:09:19

回答

16

試試這個方法:如果你知道這只是一個時間的呼叫

var myInterval = setInterval(function() { 
    alert(1); 
    clearInterval(myInterval); 
}, 2000); 

另一種方法是使用setTimeout()

+0

不一樣它不是這樣的 我希望它保持檢查的事情,如果它完成它的將停止:) – ThElitEyeS 2012-03-17 04:13:09

+1

輝煌,但如果間隔設置從一個物體內部? 'bar = {zaa:function(){this.int = setinterval(function(){clearInterval(this.int)},100)}}; foo = new bar.zaa();' – 2013-12-07 08:12:37

6
(​function() { 
    var runs = 3; 
    var i = setInterval(function() { 
     console.log("Number " + runs);       
     --runs; 
     if (runs == 0) { 
      clearInterval(i); 
     }  
    }, 1000); 
}());​ 

jsfiddle