我一直遇到查询器 npm 包的问题,无法在任何地方找到解决方案。我试图允许用户随时退出函数中的查询器提示并返回主菜单。但是,这似乎导致查询器提示的多个实例保持活动状态,从而导致此错误:
(节点:9756) MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 个退出侦听器。使用emitter.setMaxListeners() 增加限制
并且还导致特定功能中的询问者提示开始多次显示相同的提示。在尝试多次使用该功能后,我附上了该行为的图像。 提示错误
我尝试增加阻止内存泄漏错误的事件侦听器的最大数量,但查询器提示错误不受影响。
inquirer.prompt([
{
name: 'itemid',
type: 'input',
message: 'Please enter the product id. (type "exit" to return to main menu)',
validate(answer) {
//validates the id provided exists in the database. If exit is entered, returns to main().
var valid = false;
var exit = answer.toLowerCase();
id = parseInt(answer);
if (exit == "exit") {
return main();
}
for (var j = 0; j < idCheckArray.length; j++) {
if (answer == idCheckArray[j]) {
valid = true;
} else {
}
}
if (valid === true && exit != "exit") {
return (true);
} else {
return ("Item ID does not exist. Please enter a valid ID.");
}
}
},
我认为原因是通过从查询器验证函数中返回和调用 main,查询器不会调用其内置函数,因此每次执行此操作时,查询器创建的事件侦听器都不会被删除。
非常感谢任何有关如何解决此问题的帮助,谢谢。