官方文档中说child.stdin
是一个可写流,child.stdin
也确实可以使用stream.Writable
类的方法,例如,child.stdin.write()
,具体详见我的另一个问题(开始理解错误,以为 ChildProcess 本质是一个 process,所以使用的方法和属性跟使用 process 是一样的)。child.stdin
之所以可以使用write()
方法,难道不是因为他是stream.Writable
类的实例吗?但是通过代码测试却返回false
。
var stream = require('stream');
var spawn = require('child_process').spawn;
// 使用子进程 执行 tail 命令,实时查看被添加到 my_file 文件中的内容。
var child = spawn('tail', ['-f', '/var/temp/my_file']);
console.log(child.stdin instanceof stream.Writable); //=>false
console.log(child.stdin instanceof stream.Readable); //=>true