2011-10-28 5 views
6

मैं अपने intervalId का उपयोग करके एक अंतराल को साफ़ करना चाहता हूं जिसे मैं स्थानीय फ़ाइल में स्टोर करना चाहता हूं।setInterval टाइमर ऑब्जेक्ट देता है और अंतराल नहीं करता है

मैं इस धारणा के तहत था कि सेटइंटरवाल को अपना intervalId देता है लेकिन मुझे लगता है कि [object Timer] इसके बजाय मुझे लगता है।


var fs = require("fs"); 

var id = setInterval(function(){ 
    console.log("tick"); 
}, 1000); 

console.log(id); 

var stream = fs.createWriteStream("id"); 
stream.once('open', function(fd) { 
    stream.write(id); 
}); 

मैं नोड v4.9

+0

अजीब, यह निश्चित रूप से मेरे लिए एक पूर्णांक देता है (और यह ऐसा करने के लिए दस्तावेज़ीकरण किया गया है) .. Node.js कुछ setInterval शायद के साथ फंकी करना है? –

+0

@ माइक क्रिस्टेनसेन 'सेट इंटरवल' सही ढंग से टिक रहा है। जिस तरह से आप नोड का संस्करण उपयोग कर रहे हैं? – Aaron

+1

यह * चाहिए * [आईडी वापस] [http://nodejs.org/docs/v0.4.9/api/timers.html#setInterval), ओटीओएच, [इस पोस्ट का कंसोल आउटपुट] (http://groups.google .com/group/nodejs/Browse_thread/thread/341e7ee19a13e516? pli = 1) 'setInterval' को कॉल करने के बाद कुछ और दिखाता है। –

उत्तर

2

उपयोग कर रहा हूँ यह एक टाइमर वस्तु है, लेकिन जिस तरह से आप यह उम्मीद करेंगे करने के लिए साफ करता है:

$ नोड ./test.js

var id = setInterval(function(){ 
    console.log("FOO"); 
    console.log(id); 
}, 500); 

setTimeout(function(){ 
    clearInterval(id); 
}, 5000); 

5 सेकंड के लिए निम्नलिखित आउटपुट करता है, और उम्मीद के अनुसार साफ़ करता है:

FOO 
{ repeat: 0, callback: [Function] } 
FOO 
{ repeat: 0, callback: [Function] } 
FOO 
{ repeat: 0, callback: [Function] } 

और जानकारी: http://nodejs.org/docs/v0.5.10/api/timers.html