Javascript NodeJS:执行相应功能后如何重新显示自定义CLI菜单
我来自低级编程背景,因此JS和NodeJS对我来说是一个新领域 我正在尝试创建一个应用程序,它首先向用户显示CLI菜单。用户选择菜单选项后,将执行相应的功能。一旦该功能完成,我希望重新显示菜单 在Python和embedded C中处理这个问题的一个非常简单的方法是将菜单包含在while(1)循环中,然后在用户选择相应的菜单选项时终止程序/脚本过程。然而,在NodeJS中,您不能在while(1)循环中运行菜单——与每个菜单选项对应的调用函数实际上从未被调用,菜单只是立即重新显示 换句话说,NodeJS等同于什么:Javascript NodeJS:执行相应功能后如何重新显示自定义CLI菜单,javascript,node.js,command-line-interface,Javascript,Node.js,Command Line Interface,我来自低级编程背景,因此JS和NodeJS对我来说是一个新领域 我正在尝试创建一个应用程序,它首先向用户显示CLI菜单。用户选择菜单选项后,将执行相应的功能。一旦该功能完成,我希望重新显示菜单 在Python和embedded C中处理这个问题的一个非常简单的方法是将菜单包含在while(1)循环中,然后在用户选择相应的菜单选项时终止程序/脚本过程。然而,在NodeJS中,您不能在while(1)循环中运行菜单——与每个菜单选项对应的调用函数实际上从未被调用,菜单只是立即重新显示 换句话说,No
while(1) {
displayMenuToUser();
// Wait for user to select which menu option they want
if (quitMenuOptionSelectedByUser) {
terminateProcess();
} else {
executeFunctionCorrespondingToTheSelectedMenuOption();
// At this point the menu should be re-displayed so the user can select another option
}
}
你可以用
我举了一个例子,如果你在问题中回答是,这个例子会不断循环
var inquirer = require('inquirer');
const showMenu = () => {
inquirer
.prompt([{
name: 'age',
type: 'input',
message: 'What\'s your age?',
}, {
name: 'country',
type: 'list',
message: 'Where do you live?',
choices: ['USA', 'China', 'Germany', 'France'],
}, {
name: 'back',
type: 'input',
message: 'Go again?',
choices: ['yes', 'no'],
}]
).then((answers) => {
console.log(`\nMy age is ${answers.age} and I live in ${answers.country}.\n`);
if (answers.back === 'yes') {
return showMenu();
}
})
.catch((err) => {
console.log(err);
});
}
showMenu();