2012-03-17 13 views
7

Me pregunto si hay una manera de hacer que setInterval sea claro.Javascript setInterval despejando?

Algo como esto:

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

quiero que revise de nada si está terminado se detendrá.

+1

En este ejemplo, al menos, tendría más sentido que acabamos de usar 'setTimeout'. –

+0

quizás prefiera 'setTimeout' en su lugar – vol7ron

+0

agh GGG me ganó :) – vol7ron

Respuesta

16

Trate de esta manera:

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

manera alternativa es usar setTimeout() si usted sabe que es sólo una llamada tiempo.

+0

nah no es como esto quiero que siga revisando cosa si está terminado, se detendrá :) – ThElitEyeS

+1

Brillante, pero ¿qué ocurre si se establece el intervalo? desde dentro de un objeto? 'bar = {zaa: function() {this.int = setinterval (function() {clearInterval (this.int)}, 100)}}; foo = new bar.zaa(); ' –

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

jsfiddle

Cuestiones relacionadas