NodeJS clearTimeout()似乎不能正常工作?

我有一个超时,它基本上杀死了这个进程运行了很长时间,但是这只有当某个条件没有被满足的时候。 如果我的条件被击中,我使用clearTimeout()来清除超时,但似乎错误和进程杀死持续。

这是我的代码片段; 即使clearTimeout()命中,错误仍然会在5分钟后打印出来。

 function poll(callback){ var timeLimit = setTimeout(function(){ if(log) log("Could not get a response from the command.", "error"); process.exit(1); }, 300000); exec("some command", function(error, stdout, stderr){ if(stdout){ clearTimeout(timeLimit); // Do other stuff } else { setTimeout(function(){ poll(callback); }, 1000); } }); } 

我在浏览器中testing,似乎在一个典型的JavaScript控制台工作,但也许我上面做错了什么?

如果是这样,任何帮助将不胜感激。 以上是我的确切代码(当然除了命令和错误消息),所以如果有任何错误,应该可以看到上面。

提前致谢。

Bleh,深夜的时刻。

setTimeout()在轮询函数内,所以每次轮询都会重置,这意味着我不能清除旧的实例。 把它移到函数之外,它工作得很好。