RK
Size: a a a
RK
А
RK
RK
А
А
static spawner(command, args, options, onStderr, onStdout) {
const stdout = [];
const stderr = [];
const promise = spawn(command, args, options);
const { childProcess } = promise;
process.on('SIGINT', (code, signal) => {
console.log('from spawner', code, signal);
});
// var eventEmitter = new process.EventEmitter();
// eventEmitter.emmit('SIGINT', { test: 'test' });
// childProcess.on('SIGINT', (code, signal) => {
// console.log('SIGNAL ::', signal);
// // stdout.push(signal);
//
// // childProcess.disconnect();
// });
// childProcess.on('close', (code, signal) => {
// console.log('close ::', signal);
// // stdout.push(signal);
//
// // childProcess.disconnect();
// });
// childProcess.on('disconnect', (code, signal) => {
// console.log('disconnect ::', signal);
// // childProcess.disconnect();
// });
// childProcess.on('exit', (code, signal) => {
// console.log('exit ::', signal);
// // childProcess.disconnect();
// });
childProcess.stderr.on('data', data => {
console.log('stderr', data);
stderr.push(data);
onStderr(data);
});
childProcess.stdout.on('data', data => {
console.log('stdout', data);
stdout.push(data);
onStdout(data);
});
console.log('events', childProcess._events);
return promise.then(() => Buffer.concat(stdout)).catch(err => {
err.message = Buffer.concat(stderr).toString();
console.log('message', err.message);
return Promise.reject(err);
});
}
А
А
RK
O
A
KR
KR
KR
BY
TS
BY
SIGINT
TS
SIGINT
TS
static spawner(command, args, options, onStderr, onStdout) {
const stdout = [];
const stderr = [];
const promise = spawn(command, args, options);
const { childProcess } = promise;
process.on('SIGINT', (code, signal) => {
console.log('from spawner', code, signal);
});
// var eventEmitter = new process.EventEmitter();
// eventEmitter.emmit('SIGINT', { test: 'test' });
// childProcess.on('SIGINT', (code, signal) => {
// console.log('SIGNAL ::', signal);
// // stdout.push(signal);
//
// // childProcess.disconnect();
// });
// childProcess.on('close', (code, signal) => {
// console.log('close ::', signal);
// // stdout.push(signal);
//
// // childProcess.disconnect();
// });
// childProcess.on('disconnect', (code, signal) => {
// console.log('disconnect ::', signal);
// // childProcess.disconnect();
// });
// childProcess.on('exit', (code, signal) => {
// console.log('exit ::', signal);
// // childProcess.disconnect();
// });
childProcess.stderr.on('data', data => {
console.log('stderr', data);
stderr.push(data);
onStderr(data);
});
childProcess.stdout.on('data', data => {
console.log('stdout', data);
stdout.push(data);
onStdout(data);
});
console.log('events', childProcess._events);
return promise.then(() => Buffer.concat(stdout)).catch(err => {
err.message = Buffer.concat(stderr).toString();
console.log('message', err.message);
return Promise.reject(err);
});
}
new process.EventEmitter();
EventEmitter находится в библиотеке eventsTS