2012-07-03 57 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); 
})();