setInterval возвращает объект таймера, а не intervalId - PullRequest
6 голосов
/ 28 октября 2011

Я хочу очистить интервал, используя 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

1 Ответ

2 голосов
/ 28 октября 2011

Это объект таймера, но очищает его так, как вы ожидаете:

$ node ./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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...