Ich möchte benutzerdefinierten Stream verwenden, um child_process.spawn stdio zu behandeln.Nodejs child_process spawn benutzerdefinierte stdio
Zum Beispiel
const cp = require('child_process');
const process = require('process');
const stream = require('stream');
var customStream = new stream.Stream();
customStream.on('data', function (chunk) {
console.log(chunk);
});
cp.spawn('ls', [], {
stdio: [null, customStream, process.stderr]
});
ich Fehler Incorrect value for stdio stream
.
Es gibt Dokumentation für child_process.spawn https://nodejs.org/api/child_process.html#child_process_options_stdio. Es sagt für STDIO Optionen, dass es Stream-Objekt nehmen kann
Stream-Objekt - Teilen Sie einen lesbaren oder schreibbaren Stream, der auf eine Tty, Datei, Socket oder eine Pipe mit dem Kindprozess verweist.
Ich denke, ich vermisse diesen "verweist auf" -Teil.
Ja, das ist etwas, das ich am Ende bin mit. Danke –
Während dies eine gute Problemumgehung ist, ist das eigentliche Problem, dass STDIO-Streams einen zugrunde liegenden Dateideskriptor benötigen. Benutzerdefinierte Streams haben das nicht. – skerit