首页 > 解决方案 > 进程完成后阻止 node.js 应用程序退出

问题描述

我写了一个非常基本的 nodejs 应用程序,如下所示:

#!/usr/bin/env node

const inquirer = require("inquirer");
const chalk = require("chalk");
const figlet = require("figlet");
const shell = require("shelljs");
const fs = require('fs');

//Defining some functions
//~~

//The main part of the code
const run = async function() {
    const answers = await form();
    //other codes
    //~~
}

run();

代码的主要目的是使用inquirer模块在控制台中提出一些问题,然后在run()部分中处理答案。它在这方面做得很好。它成功地提出了问题,并对答案做了它应该做的事情。

但是,一旦处理了答案,该过程将退出。我想要的是,一旦处理了答案,我希望它再次回答相同的问题,并不断重复,直到我手动终止该过程。

我试过这个:

for( ; ; ) {
    run();
}

但是,它会一次又一次地回答问题,而无需等待答案。这是控制台的样子: 控制台输出

我希望它做这些:

  1. 提出问题并等到我输入答案。
  2. 处理问题(使用 中的代码run()
  3. 完成后,回到问题 1。

我怎样才能做到这一点?

标签: javascriptnode.jsconsolecommand-line-interfaceconsole-application

解决方案


而不是做

for( ; ; ) {
    run();
}

run在函数内部执行此操作

while (true) {
    const answers = await form();
    //other codes
    //~~
}

推荐阅读