Node.js 处理消息事件
“消息”是进程模块中 Process 类的事件,每当子进程接收到父进程使用childprocess.send()发送的消息时,就会发出该事件。
句法:
Event: 'message'
参数:此事件不接受任何参数作为参数。
返回值:此事件只返回一个回调函数以供进一步操作。
示例 1:
文件名是 index.js
Javascript
// Node.js program to demonstrate the
// Process 'message' Event
// Importing process module
const cp = require('child_process');
// Initiating child process
const process = cp.fork(`${__dirname}/sub.js`);
// Causes the child to print:
// CHILD got message: { hello: 'world' }
process.send({ hello: 'world' });
Javascript
// Importing process module
const process = require('process');
// Message Event
process.on('message', (m) => {
console.log('CHILD got message:', m);
process.exit(0)
});
Javascript
// Node.js program to demonstrate the
// Process 'message' Event
// Importing process module
const cp = require('child_process');
// Initiating child process
const process = cp.fork(`${__dirname}/sub.js`);
// Message Event
process.on('message', (m) => {
console.log('PARENT got message:', m);
});
// Causes the child to print:
// CHILD got message: { hello: 'world' }
process.send({ hello: 'world' });
Javascript
// Importing process module
const process = require('process');
// Message Event
process.on('message', (m) => {
console.log('CHILD got message:', m);
process.exit(0)
});
// Causes the parent to print:
// PARENT got message: { foo: 'bar', baz: null }
process.send({ foo: 'bar', baz: NaN });
这里的文件名是 sub.js
Javascript
// Importing process module
const process = require('process');
// Message Event
process.on('message', (m) => {
console.log('CHILD got message:', m);
process.exit(0)
});
使用以下命令运行index.js文件:
node index.js
输出:
CHILD got message: { hello: 'world' }
示例 2:
文件名是 index.js
Javascript
// Node.js program to demonstrate the
// Process 'message' Event
// Importing process module
const cp = require('child_process');
// Initiating child process
const process = cp.fork(`${__dirname}/sub.js`);
// Message Event
process.on('message', (m) => {
console.log('PARENT got message:', m);
});
// Causes the child to print:
// CHILD got message: { hello: 'world' }
process.send({ hello: 'world' });
这里的文件名是 sub.js
Javascript
// Importing process module
const process = require('process');
// Message Event
process.on('message', (m) => {
console.log('CHILD got message:', m);
process.exit(0)
});
// Causes the parent to print:
// PARENT got message: { foo: 'bar', baz: null }
process.send({ foo: 'bar', baz: NaN });
使用以下命令运行index.js文件:
node index.js
输出:
CHILD got message: { hello: 'world' }
PARENT got message: { foo: 'bar', baz: null }
参考: https://nodejs.org/dist/latest-v16.x/docs/api/process.html#process_event_message