gpt4 book ai didi

javascript - 从 Master JS 菜单运行其他 JS

转载 作者:行者123 更新时间:2023-12-03 00:32:36 24 4
gpt4 key购买 nike

有一个主菜单,当用户选择一个选项时,将从中执行其他 JS 脚本。不太确定我如何从主 JS 菜单执行 JS。我只想退出菜单并正确运行 JS。我还需要导出 JS 并以某种方式执行它吗?

runOptions();
var runOptions = function () {
inquirer.prompt({
name: "action",
type: "list",
message: "What do you want to do?",
choices: [
"Perform Magic",
"Go To Bed",
"Have a Vodka Martini"

]
}).then(function (answer) {
switch (answer.action) {
case "Perform Magic":
runMagicman();
break;

case "Go To Bed":
runSleepyTime();
break;

case "Have a Vodka Martini":
runGetDrunk();
break;
}
});
}

var runMagicman = function () {
// Exit this menu and run magicman.js
}

var runSleepyTime = function () {
// Exit this menu and run sleepytime.js
}

var runGetDrunk = function () {
// Exit this menu and run getdrunknow.js
}

最佳答案

如果包含 runOptions 的文件是主入口点,则不需要导出 runOptions 函数(这意味着您正在执行 node ./thisFile.js)。我们想要导出函数或类的主要原因是根据它们的功能或用途对它们进行分组。

此外,执行此类动态操作的一个巧妙的小技巧是使用 .apply(),它将为每个操作调用具有灵活参数的函数。

runOptions();
var runOptions = function () {
inquirer.prompt({
name: "action",
type: "list",
message: "What do you want to do?",
choices: [
"Perform Magic",
"Go To Bed",
"Have a Vodka Martini"

]
}).then(function (answer) {
const functionMapping = {"Perform Magic": runMagicman, "Go To Bed": runSleepyTime, "Have a Vodka Martini": runGetDrunk };
const parameterMapping = {"Perform Magic": [answer.arg1], "Go To Bed": runSleepyTime: [answer.arg1, answer.arg2, answer.arg3], "Have a Vodka Martini": [answer.arg1, answer.arg2] };
if (functionMapping[answer.action]){
return functionMapping[answer.action].apply(null, parameterMapping[answer.action]);
}
throw "Action not found";
});
}

var runMagicman = function (arg1) {
// Exit this menu and run magicman.js
}

var runSleepyTime = function (arg1, arg2, arg3) {
// Exit this menu and run sleepytime.js
}

var runGetDrunk = function (arg1, arg2) {
// Exit this menu and run getdrunknow.js
}

希望能帮助您解决问题。

关于javascript - 从 Master JS 菜单运行其他 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53790740/

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