Transmitir la salida del proceso hijo en modo fluido.

Tengo una línea de comandos personalizada escrita con Python que imprime su salida usando la declaración "imprimir". Lo estoy usando desde Node.js para generar un proceso hijo y enviar comandos a él usandochild.stdin.write método. Aquí está la fuente:

var childProcess = require('child_process'),
    spawn = childProcess.spawn;

var child = spawn('./custom_cli', ['argument_1', 'argument_2']);

child.stdout.on('data', function (d) {
  console.log('out: ' + d);
});

child.stderr.on('data', function (d) {
  console.log('err: ' + d);
});

//execute first command after 1sec
setTimeout(function () {
  child.stdin.write('some_command' + '\n');
}, 1000);

//execute "quit" command after 2sec
//to terminate the command line
setTimeout(function () {
  child.stdin.write('quit' + '\n');
}, 2000);

Ahora el problema es que no estoy recibiendo la salida enmodo fluido. Quiero obtener la salida del proceso hijo tan pronto como se imprima, pero estoy recibiendo la salida de todos los comandos solo cuando el proceso hijo se termina (usando cli's personalizadosdejar mando).

Respuestas a la pregunta(3)

Su respuesta a la pregunta