1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 1× 1× 6× 28× 21× 1× 1× 1× | const ChildProcess = require('child_process');
const path = require('path');
class Worker {
constructor(script) {
this._process = ChildProcess.fork(path.join(__dirname, 'node-child-process.js'), [script]);
this._process.on('message', (data) => this.onmessage({data}));
}
postMessage(data) {
this._process.send(data);
}
onmessage(data) {}
terminate() {
// terminated
this._process.kill('SIGINT');
this._terminated = true;
}
}
module.exports = Worker; |