main.js
let child = require('child_process').fork('./child.js');
child.on('message', function () {
console.log('message', arguments)
});
child.js
process.send({ ... });
似乎使用两个参数调用处理程序:
{'0':{...},'1':undefined}
我指望message
监听器中的参数长度,所以参数的确切数量很重要。
第二个参数是什么(undefined
)?是否在所有Node.js版本中都无条件地存在?
答案 0 :(得分:1)
事件:'消息'
•
message
<Object>
已解析的JSON对象或原始值。•
sendHandle
<Handle>
net.Socket
或net.Server
个对象,或未定义。
如果您在同一页面上搜索 sendHandle ,则最终会here,具体为:
可以传递给
sendHandle
的可选child.send()
参数用于将TCP服务器或套接字对象传递给子进程。子进程将接收该对象作为传递给process.on('message')
事件上注册的回调函数的第二个参数。
但是,在您的情况下,您将从另一个方向发送消息,从子节点到服务器,在这种情况下发送句柄没有意义。因此,我的猜测是,在这种情况下,第二个参数总是为undefined
(但仍会存在)。