我有可能會導致下面的輸出死服務器:調試「最大調用堆棧大小超出」
events.js:38
EventEmitter.prototype.emit = function(type) {
^
RangeError: Maximum call stack size exceeded
然而,沒有一個堆棧轉儲或跟蹤,我沒有發現這是否方式是無限遞歸或僅僅是一個稍大的鏈,更不用說問題函數的位置了。
與--trace
選項來運行節點引起我的測試,不僅運行緩慢(如人們所期望的),但不重現該問題。
任何人有任何解決方案或技巧來達到這個底部?
這個具體問題是由前後對比的diff解決後,這是衆所周知的發生,堅持通過每次新/更改的'emit'調用進行額外的日誌記錄,並發現導致「drain」事件發生聯合遞歸的範圍錯誤 - 因此速度敏感。 我仍然會將已接受的答案授予最佳一般策略,這也將解決此問題。 – OrangeDog