2011-10-28 4 views
6

로컬 파일에 저장하려는 intervalId을 사용하여 간격을 지우고 싶습니다.setInterval은 intervalId가 아닌 Timer Object를 반환합니다.

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

관련 문제