Node Js process.stdin

时间:2016-05-13 12:19:17

标签: javascript node.js input

我刚刚进入node.js并从命令行读取输入。

我对以下代码示例感到有点困惑。

process.stdin.setEncoding('utf8');

process.stdin.on('readable', () => {
  var chunk = process.stdin.read();
  if (chunk !== null) {
    process.stdout.write(`data: ${chunk}`);
  }
});

process.stdin.on('end', () => {
  process.stdout.write('end');
});

首先,在模式中,需要process.stdin.resume()才能开始收听。不使用resume()对性能更有意义吗?这是不是会继续听,使用它不需要用完的处理能力?

另外,我阅读了文档,但我不理解'end'在这里做了什么。

文档说:

  

当没有更多数据可供阅读时,此事件将触发。

但是'readable'总是在听,所以我们永远不会去'end'

1 个答案:

答案 0 :(得分:3)

持续监听输入并不一定比使用手动恢复流更多地使用资源。它只是处理管道的另一种方式。

"可读"当"结束"事件被触发,因为结束将关闭流,因此不再具有任何可读性。

结束事件是触发到标准输入的结束信号的转换(例如unix系统上的CTRL / D.