求助:emitter.setMaxListeners()
发布于 12 年前 作者 liuj0225 9930 次预览 最后一次回复是 12 年前 来自
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at Socket.EventEmitter.addListener (events.js:168:15)
at Socket.EventEmitter.once (events.js:189:8)
at Socket.setTimeout (net.js:173:12)
at ClientRequest.setTimeout (http.js:1557:17)
at ClientRequest.setTimeout (http.js:1569:10)
at ClientRequest.g (events.js:185:14)
at ClientRequest.EventEmitter.emit (events.js:115:20)
at ClientRequest.onSocket (http.js:1514:9)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
使用request模块发送请求,当请求多的时候就出现这个警告,谁能告诉我一下应该在哪儿设置setMaxListeners(),我在自己的环境中没有调试出来。
2 回复
治标:
要治本,将timeout的回调函数独立出来,在response事件之后手动注销timeout的监听
PS: 记得node某个版本后clientrequest会自动注销监听,楼主的版本很旧?
非常感谢