如何处理nodejs中的EventEmitter内存泄漏?



在我的js脚本中,我使用Readline方法从控制台获取输入。

我的意见如下: 整数 n,表示数组 A 的大小。 n 个以空格分隔的整数,表示数组 A。 一个整数 m,表示数组 B 的大小。 m 个以空格分隔的整数,表示数组 B。

我使用以下代码启动 readline 对象:

var readline = require('readline');
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
terminal: false
});

我使用以下代码来获取这些值:

rl.on('line', function (line) {
var n = line;
var A = new Array(n);
rl.on('line', function (line) {
A = line.split(" ");
rl.on('line', function (line) {
var m = line;
var B = new Array(m);
rl.on('line', function (line){
B = line.split(" ");
Solution(n, m, A, B);
})
})
})
})

代码工作正常,解决方案函数被正确调用,没有什么异常。 在控制台中,我收到此警告;如何摆脱这个:

(节点:12624( 最大侦听器超出警告:检测到可能的事件发射器内存泄漏。 11 个线路侦听器>添加到 [接口]。使用 emitter.setMaxListeners(( 增加限制

为了在nodeJS中获取用户的输入,我完全使用了一种不同且更方便的方法。 我在nodeJS中使用了process

这是代码,

function processData(input) {
var array = input.split(/s|n+/);
console.log(array);
} 
process.stdin.resume();
process.stdin.setEncoding("ascii");
_input = "";
process.stdin.on("data", function (input) {
_input += input;
});
process.stdin.on("end", function () {
processData(_input);
});

我使用 NodeJS 编译器在 IDEONE 上运行它,它运行良好。

IDEONE 在运行脚本之前从用户那里获取输入,因此此代码在检测输入结束位置时起作用。 我仍然无法弄清楚如何在编译器无法检测到输入结束的Visual Studio Code中运行此代码。

相关内容

  • 没有找到相关文章

最新更新