【问题标题】:Is there a way to get synchronous terminal input in Node.js有没有办法在 Node.js 中获取同步终端输入
【发布时间】:2015-09-20 11:37:50
【问题描述】:

我已经查看了关于 SO 的类似问题,并且我有一个关于是否可以从命令行获取同步输入的持续问题。

我知道readlineprocess.stdin.on('readable', ...),但它们似乎都是异步的。

我正在寻找一种方法来提示用户输入,其中我的脚本中稍后的代码在用户输入之前不会运行。

【问题讨论】:

  • 为什么不让代码在读取数据后才执行?
  • 这个模块似乎做你想做的事:npmjs.com/package/readline-sync
  • @thefourtheye 输入应该是在递归函数期间添加目录中的每个文件。我认为这会让事情变得更加困难。

标签: node.js stdin


【解决方案1】:

如果您知道同步输入的固定数量,您可以试试这个。

    const readline = require('readline');

    const rl = readline.createInterface({
      input: process.stdin,
      output: process.stdout
    });
    let i = 0;
    rl.question('Number of inputs : ', (answer1) => {
      rl.on('line', (answer2) => {
        console.log(`input: ${answer2}`);
        i++;
        if (i >= answer1) {
          rl.close();
        }
      });
    });

【讨论】:

  • 这根本不是同步的。它基于回调。
猜你喜欢
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
  • 2018-06-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多