这里是JS / Node的新手。我试着编写一个非常简单的Node程序来反复要求用户键入用户名,直到他/她键入关键字done
。我正在使用提示npm包(https://www.npmjs.com/package/prompt)。
var prompt = require('prompt');
// Start the prompt
prompt.start();
var currentDinerName = "";
var done = false;
while (done !== true) {
// Ask for name until user inputs "done"
prompt.get(['name'], function(err, result) {
console.log('Diner name: ' + result.name);
currentDinerName = result.name;
if (currentDinerName === 'done') {
console.log('We are done.');
done = true;
}
});
}
然而,我收到内存泄漏 - 它不喜欢这个while
循环。在Node / JS中执行此操作的正确方法是什么?
感谢。
答案 0 :(得分:5)
将提示代码放入函数中,并在用户未完成时调用它:
function ask() {
// Ask for name until user inputs "done"
prompt.get(['name'], function(err, result) {
console.log('Diner name: ' + result.name);
currentDinerName = result.name;
if (currentDinerName === 'done') {
console.log('We are done.');
} else {
ask();
}
});
}
ask();