setInterval返回Timer对象而不是intervalId

Aar*_*ron 6 javascript timeout setinterval node.js

我想通过使用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);
});
Run Code Online (Sandbox Code Playgroud)

我正在使用节点v4.9

cho*_*ovy 3

它是一个计时器对象,但明确了您所期望的方式:

$ 节点./test.js

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

setTimeout(function(){
  clearInterval(id);
}, 5000);
Run Code Online (Sandbox Code Playgroud)

输出以下内容 5 秒,并按预期清除:

FOO
{ repeat: 0, callback: [Function] }
FOO
{ repeat: 0, callback: [Function] }
FOO
{ repeat: 0, callback: [Function] }
Run Code Online (Sandbox Code Playgroud)

更多信息:http://nodejs.org/docs/v0.5.10/api/timers.html