2012-07-03 36 views
2

我正在运行node.js应用程序,并且每500毫秒运行一个进程。有很多逻辑正在完成,有时我们发现它可能会运行超过500毫秒 - 这在使用setInterval时会导致问题。带回调的Node.js setTimeout

我们重新设计,这与回调使用的setTimeout像这样:

var start = function() { 

      self.performProcesses(function() { 
       setTimeout(function() { 
        start(); 
       }, 500); 
      }); 
     } 

    start(); 

的问题是有时候这站,沿performProcesses回调不被上路的地方的意思。有成千上万行代码可以访问多个对象和文件。

有人会推荐一个好方法来尝试调试这个并隔离哪里可能是休息吗?

谢谢!

回答

0

当我在JavaScript中编程时,我使用了Aptana。它是名为Appcelerator的集合的一部分,它几乎是Eclipse。 Aptana让你用JavaScript开发和调试,这样你就可以StepInto,StepOver等等。

+0

JScript!== JavaScript。 JScript是微软对JavaScript的剽窃。一个项目,在它被标准化为ECMAScript之前,它们最初将工程化的JavaScript颠倒过来。这些年来,即使是现在,也有不同之处。无论如何,V8是为JavaScript。它不支持很多额外的垃圾MS放在JScript中。 – MicronXD

+0

@MicronXD - 对不起,我的意思是JScript是JavaScript ...... Aptana甚至不支持JScript,所以..我会编辑我的帖子。 – Failsafe

0

你试过web-inspector

您也可以尝试Paul Irish anim shim进行循环控制。如果您在self.performProcess之后致电requestAnimFrame,它将以500ms的间隔被调用。

var requestAnimFrame = function (callback) { setTimeout(callback, 500); }; 

(function animloop() { 
    self.performProcesses(); 
    requestAnimFrame(animloop); 
})();