如何在代码中触发事件stdin.on("data",[callback])?

evf*_*qcg 9 node.js

请考虑以下示例

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

process.stdin.write("foo\n")
process.stdin.write("bar\n")
Run Code Online (Sandbox Code Playgroud)

当我输入something终端时,我明白了

 received something
Run Code Online (Sandbox Code Playgroud)

为什么不以同样的方式进行工作foobar我先前发送使用stdin.write

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

nim*_*odm 8

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

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

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

process.stdin.emit('data', 'abc');
Run Code Online (Sandbox Code Playgroud)