2012-03-17 28 views
7

मुझे आश्चर्य है कि setInterval स्वयं को साफ़ करने का कोई तरीका है या नहीं।जावास्क्रिप्ट सेट अंतराल खुद को समाशोधन?

कुछ इस तरह:

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

मैं इसे अगर यह यह बंद हो जाएगा समाप्त हो बात की जाँच कर रखना चाहते हैं।

+1

इस उदाहरण में कम से कम, यह अधिक मतलब होगा सिर्फ 'setTimeout' उपयोग करने के लिए। –

+0

शायद आप 'setTimeout' को – vol7ron

+0

एजीएच जीजीजी ने मुझे हराया है :) – vol7ron

उत्तर

16

इस तरह का प्रयास करें:

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

वैकल्पिक रास्ता setTimeout() उपयोग कर रहा है अगर आप जानते हैं कि यह सिर्फ एक बार कॉल है।

+0

नहीं, यह नहीं है, मैं इसे जांचना जारी रखना चाहता हूं अगर यह समाप्त हो जाएगा :) – ThElitEyeS

+1

शानदार, लेकिन क्या अंतराल सेट किया गया था एक वस्तु के अंदर से? '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

संबंधित मुद्दे