gpt4 book ai didi

node.js - NodeJS : warning: possible EventEmitter memory leak detected. 添加了 11 个监听器。使用 emitter.setMaxListeners() 增加限制

转载 作者:搜寻专家 更新时间:2023-10-31 22:24:47 24 4
gpt4 key购买 nike

我有以下代码:

var schild = spawn('script.sh', ["process1", "process2"]);
schild.stderr.on('data', function (data) {
logger.info('stderr: ' + data);
});

schild.on('exit', function (code) {
logger.info('child process exited with code ' + code);
});

schild.stdout.on('data', function (data) {
logger.info('Data ' + data);
});

当我运行代码时出现以下错误:

(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at EventEmitter.addListener (events.js:175:15)
at EventEmitter.once (events.js:196:8)
at Transport.logException (/x/home/prakash/src/node_modules/winston/lib/winston/transports/transport.js:118:8)
at logAndWait (/x/home/prakash/src/node_modules/winston/lib/winston/logger.js:613:15)
at async.forEach (/x/home/prakash/src/node_modules/winston/node_modules/async/lib/async.js:86:13)
at Array.forEach (native)
at _forEach (/x/home/prakash/src/node_modules/winston/node_modules/async/lib/async.js:26:24)
at Object.async.forEach (/x/home/prakash/src/node_modules/winston/node_modules/async/lib/async.js:85:9)
at Logger._uncaughtException (/x/home/prakash/src/node_modules/winston/lib/winston/logger.js:636:9)
at process.EventEmitter.emit (events.js:126:20)
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at EventEmitter.addListener (events.js:175:15)
at EventEmitter.once (events.js:196:8)
at Transport.logException (/x/home/prakash/src/node_modules/winston/lib/winston/transports/transport.js:117:8)
at logAndWait (/x/home/prakash/src/node_modules/winston/lib/winston/logger.js:613:15)
at async.forEach (/x/home/prakash/src/node_modules/winston/node_modules/async/lib/async.js:86:13)
at Array.forEach (native)
at _forEach (/x/home/prakash/src/node_modules/winston/node_modules/async/lib/async.js:26:24)
at Object.async.forEach (/x/home/prakash/src/node_modules/winston/node_modules/async/lib/async.js:85:9)
at Logger._uncaughtException (/x/home/prakash/src/node_modules/winston/lib/winston/logger.js:636:9)
at process.EventEmitter.emit (events.js:126:20)

最佳答案

我认为问题在于当您不再需要监听器时,您没有移除它们。完成后,您需要使用“schild.removeListener('exit', function)”或“schild.removeAllListeners('exit')”。

参见:http://nodejs.org/api/events.html#events_emitter_removelistener_event_listener

当然,在某些情况下,您需要拥有超过 10 个监听器,在这种情况下,您应该使用“schild.setMaxListeners(0)”(0 表示无限制)

参见:http://nodejs.org/api/events.html#events_emitter_setmaxlisteners_n

希望对您有所帮助!

关于node.js - NodeJS : warning: possible EventEmitter memory leak detected. 添加了 11 个监听器。使用 emitter.setMaxListeners() 增加限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13983204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com