[13] 制作离开功能

先制作离开应用程序的功能

在流程控制 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();
  }

https://ithelp.ithome.com.tw/upload/images/20210916/20130673oxsYHBmK6U.jpg

离开功能的仪式感 upup

day13


<<:  了解内嵌、外嵌导入css方式

>>:  [14] 开始使用 telegram

【Vim 编辑器 配置指南】订制个人的编辑神器

欲善其事 先利其器 目录 前言 Vim 配置 Vim 插件 终端机指令 前言 工程师要学习 Vim ...

Day 21 : 笔记篇 08 — 数位笔记太多很凌乱怎麽办?使用 MOC 架构有系统地管理数百则的数位笔记

一、当笔记愈来愈多时,会发生什麽问题? 多数人使用笔记软件或是文件愈来愈多时一定都会遭遇相同问题:想...

30天学会 Python: Day 6- 你的加法不是你的加法

Python 中的字串和串列有很多相似的性质,可以想成字串是元只能是字元的串列 所以可以用索引和 S...

Vue.js 从零开始:生命周期

生命周期介绍 在一开始建立Vue的实体,然後挂载到#app就算是已经在使用元件,而这一连串的建立到被...

Day10 React Props

此用React的最大目的就是将UI分区模组化成独立的、可复用的元件。 该如何运用这些元件? 就是将资...