先製作離開應用程式的功能
在流程控制 class 的 mainMenu 追加個判斷
然後加個離開程式的函式
controller\flowController.js
/**
* @description 主要選單
*
* @memberof FlowController
*/
async mainMenu() {
let selectOption = await viewPrinter.mainMenu();
switch (selectOption) {
case "登入":
break;
case "離開":
this.leaveApp();
break;
default:
break;
}
}
/**
* @description 離開應用程式
*
* @memberof FlowController
*/
async leaveApp() {
viewPrinter.clearView();
process.exit();
}
然後製作清空畫面的函式
view\viewPrinter.js
/**
* @description 清空畫面
*
* @memberof ViewPrinter
*/
async clearView() {
process.stdout.write(
process.platform === "win32" ? "\x1Bc" : "\x1B[2J\x1B[3J\x1B[H"
);
}
然後為了增加儀式感
再加一個按下任意鍵後在繼續進行下一個動作的緩衝感
/**
* @description 按下去任何按鍵來繼續程式
*
* @return {*}
* @memberof InterfaceClass
*/
async pressToContinue() {
return new Promise((resolve) => {
const handler = () => {
process.stdin.setRawMode(false);
process.stdin.pause();
process.stdout.write("\n");
resolve();
};
process.stdin.resume();
process.stdin.setRawMode(true);
process.stdin.once("data", handler);
});
}
然後稍微修改一下流程控制的 leaveApp 函式
async leaveApp() {
viewPrinter.clearView();
console.log("按 任意鍵 離開程式");
await viewPrinter.pressToContinue();
process.exit();
}
離開功能的儀式感 upup