3 回答

TA貢獻(xiàn)1848條經(jīng)驗 獲得超2個贊
我想在此指出,警告是有原因的,并且很有可能正確的修復(fù)不會增加限制,但要弄清楚為什么要為同一事件添加如此多的監(jiān)聽器。如果您知道為什么要添加如此多的聽眾并且確信這是您真正想要的,那么只能增加限制。
我發(fā)現(xiàn)這個頁面是因為我收到了這個警告,在我的情況下,我使用的一些代碼中存在一個錯誤,即將全局對象轉(zhuǎn)換為EventEmitter!我當(dāng)然建議不要在全球范圍內(nèi)增加限制,因為你不希望這些事情被忽視。

TA貢獻(xiàn)1825條經(jīng)驗 獲得超4個贊
默認(rèn)情況下,任何單個事件最多可以注冊10個偵聽器。
如果是您的代碼,您可以通過以下方式指定maxListeners:
const emitter = new EventEmitter()
emitter.setMaxListeners(100)
// or 0 to turn off the limit
emitter.setMaxListeners(0)
但如果它不是您的代碼,您可以使用該技巧來全局增加默認(rèn)限制:
require('events').EventEmitter.prototype._maxListeners = 100;
當(dāng)然你可以關(guān)掉限制但要小心:
// turn off limits by default (BE CAREFUL)
require('events').EventEmitter.prototype._maxListeners = 0;
BTW。代碼應(yīng)該在應(yīng)用程序的最開頭。
ADD:從節(jié)點0.11開始,此代碼也可以更改默認(rèn)限制:
require('events').EventEmitter.defaultMaxListeners = 0
- 3 回答
- 0 關(guān)注
- 1922 瀏覽
添加回答
舉報