Por lo que entendí sobre las transmisiones, Stream.Readable.pipe() debería canalizar los datos tan pronto como los reciba.
Estoy tratando de implementar mis propios flujos, pero el resultado no es el esperado.
const { Writable, Readable } = require("stream"); const writable = new Writable(); writable.data = []; writable._write = (chunk, encoding, next) => { writable.data.push(chunk.toString()); console.log(chunk.toString()); next(); }; const readable = new Readable({ read() {}, }); readable.pipe(writable); readable.push("hi"); writable.write("ho"); writable.write("ho"); console.log(writable.data);La salida de este código es
ho ho [ 'ho', 'ho' ] hiLa tubería está escribiendo en la secuencia más tarde. ¿Qué significa esto?
necesita escribir en la transmisión y no llamar directamente al método de escritura de writable
const { Writable, Readable } = require("stream"); const writable = new Writable(); writable.data = []; writable._write = (chunk, encoding, next) => { writable.data.push(chunk.toString()); next(); }; const readable = new Readable({ read() { }, }); const stream = readable.pipe(writable); stream.write("hi"); stream.write("ho"); stream.write("ho"); console.log(writable.data);//[ 'hola', 'jo', 'jo' ]