11

考虑以下示例

process.stdin.resume();
process.stdin.on("data", function(data) {
  console.log("recieved " + data)
})

process.stdin.write("foo\n")
process.stdin.write("bar\n")

当我输入something终端时,我得到

 received something

为什么它不能以foobar我之前发送的相同的方式工作stdin.write

例如,如何stdin.on("data)在代码中触发此事件 ( )?我应该process.stdin.write这样做,但我只是得到相同的输出。

4

1 回答 1

8

它是一个从文件描述符中获取输入的可读流。stdin我认为您不能写入该描述符(但您可以将其连接到另一个可写描述符)。

但是,在您的情况下,最简单的解决方案就是模拟'data'事件。每个流都是一个 EventEmiiter,因此以下将起作用:

process.stdin.resume();
process.stdin.on("data", function(data) {
   console.log("recieved " + data)
});

process.stdin.emit('data', 'abc');
于 2013-01-18T20:38:47.630 回答