2011-10-28 16 views
6

我想通過使用其intervalId來清除間隔,我打算將其存儲在本地文件中。setInterval返回計時器對象,而不是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

奇怪的,它肯定會返回給我一個int(和它的記錄這樣做)..沒有node.js中做一些時髦與setInterval的可能? –

+0

@MikeChristensen'setInterval'似乎正確滴答。你用什麼版本的節點? – Aaron

+1

它*應該* [返回id](http://nodejs.org/docs/v0.4.9/api/timers.html#setInterval),OTOH,[這篇文章的控制檯輸出](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

相關問題