我的應用程序,其中的操作需要很長的時間才能完成的情況,然後幾百情況下,下面的消息被打印:Node.js - 診斷「(節點)警告:檢測到遞歸process.nextTick。」
(node) warning: Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral.
然後應用程序崩潰,:
RangeError: Maximum call stack size exceeded
沒有堆棧跟蹤。
如何診斷此類錯誤?我想知道,例如,在RangeError
之前的哪個函數調用。
複製錯誤,該文件foo.js
具有以下內容運行node foo.js
:
var foo = function() {
process.nextTick(foo);
};
foo();
我不是那麼這個問題的具體原因有興趣在我的應用程序,因爲我知道如何來在節點中診斷這類問題。
節點版本是v0.10.39
。
'節點--trace foo.js> trace.log'可能會得到你的地方,但我懷疑它的可用於真實應用程序的上下文中,因爲它可能會引入太多副作用。 – robertklep