При использовании child_process.spawn
в Node он порождает дочерний процесс и автоматически создает потоки stdin, stdout и stderr для взаимодействия с дочерним процессом.
const child = require('child_process');
const subProcess = child.spawn("python", ["myPythonScript.py"])
subProcess.stdout.on('data', function(data) {
console.log('stdout: ' + data);
});
Таким образом, я реализовал это в своем проекте, но заключается в том, что подпроцесс фактически записывает в выходной поток только тогда, когда буфер достигает определенного размера. И не тогда, когда буфер установлен с данными (независимо от размера данных). Действительно, я хотел бы получить выходной поток подпроцесса непосредственно, когда он записывает его в выходной поток, а не когда он заполнил весь буфер. любое решение?
РЕДАКТИРОВАТЬ : Как указано в t.888, на самом деле оно должно работать так, как я ожидаю. И это действительно так, если я создаю другой подпроцесс. С ++ на этот раз. Но я не знаю, почему это не работает, когда я запускаю свой python скрипт. На самом деле, скрипт python отправляет только большие порции сообщений через стандартный вывод (возможно, когда буфер заполнен)