2011-10-28 11 views
6

Yerel bir dosyada depolamayı planladığım intervalId kullanarak bir aralığı silmek istiyorum.setInterval, Zamanlayıcı Nesnesi döndürür ve intervalId değil

SetInterval öğesinin atanmasının intervalId değerini döndürdüğü izlenimi uyandırıyordu, ancak bunun yerine [object Timer] oluyor.


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); 
}); 

Ben düğüm V4.9

+0

Garip, kesinlikle (bunu yapmak için belgelenir ve) benim için bir int döndüren .. node.js belki setInterval ile korkak şey yapmak mı? –

+0

@MikeChristensen 'setInterval' doğru şekilde işaretleniyor gibi görünüyor. Bu arada hangi düğüm sürümünü kullanıyorsunuz? – Aaron

+1

* * * [id'i döndür] (http://nodejs.org/docs/v0.4.9/api/timers.html#setInterval), OTOH, [bu gönderinin konsol çıkışı] (http://groups.google) .com/group/nodejs/browse_thread/thread/341e7ee19a13e516? pli = 1) 'setInterval' dedikten sonra başka bir şey gösterir. –

cevap

2

kullanıyorum Bu bir zamanlayıcı nesnesidir, bunlarla tam beklediğiniz önünü:

$ düğüm

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

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

Aşağıdakileri 5 saniye boyunca çıkarır ve beklendiği gibi temizler:

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

diğer bilgiler: http://nodejs.org/docs/v0.5.10/api/timers.html