[英]What's the difference in adding a handler to a child process in Node.js: cp.on('event') vs. cp.stdout('event')
似乎有两种方法可以将事件处理程序附加到Node中的子进程 ,其中一种方法是使用cp.stdin.on
, cp.stdout.on
和cp.stderr.on
。 另一个是直接添加到子进程cp.on
。 有什么不同?
const ls = spawn('ls', ['-lh', '/usr']);
ls.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
ls.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
区别在于事件源及其提供的事件。 stdin
, stdout
和stderr
是流( stdin
是Writeable流 ,其他两个是Readable流 )。 该过程是一个ChildProcess 。 因此,尽管流具有与其流相关的事件(例如,Readble流上的data
事件),但是子进程具有与其流相关的事件,例如exit
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.