为啥Node父进程使用子进程on message事件来处理子进程发送的消息
Posted
技术标签:
【中文标题】为啥Node父进程使用子进程on message事件来处理子进程发送的消息【英文标题】:Why does Node parent process use the subprocess on message event to handle messages sent by child process为什么Node父进程使用子进程on message事件来处理子进程发送的消息 【发布时间】:2020-07-13 01:49:12 【问题描述】:这是来自 nodejs 文档的示例。
父.js
const cp = require('child_process');
const n = cp.fork(`$__dirname/sub.js`);
n.on('message', (m) =>
console.log('PARENT got message:', m);
); // Why use n the subprocess here????
// Causes the child to print: CHILD got message: hello: 'world'
n.send( hello: 'world' );
child.js
process.on('message', (m) =>
console.log('CHILD got message:', m);
);
// Causes the parent to print: PARENT got message: foo: 'bar', baz: null
process.send( foo: 'bar', baz: NaN );
我可以理解子进程使用process.on('message'...)
和process.send(..)
来接收和发送消息给父进程。
但是为什么父进程要使用子进程的一个实例来接收来自子进程n.on('message'....)
的消息。应该像子进程一样是process.on('message'...)
吗?
谢谢。
【问题讨论】:
【参考方案1】:父母会和很多孩子交流。而孩子将与一位家长交流。
【讨论】:
谢谢。只是这个API不是很直观。以上是关于为啥Node父进程使用子进程on message事件来处理子进程发送的消息的主要内容,如果未能解决你的问题,请参考以下文章
如何在 node.js 子进程模块中将消息和标准输出从子进程传递给父进程?
POSIX 信号量:为啥父进程在子进程释放信号量之前获取信号量?