Как исправить переполненный поток?

import stream from "stream";
import { promisify } from "util";
const pipeline = promisify(stream.pipeline);

let gen = () => {
    return new stream.Transform({
        transform: (chunk, encoding, done) => {
            console.log('chunk');
            return done(null, chunk);

        },
        final: (onFinish) => {
            console.log('final');
        },
    });
};

let a = gen();

async function fn() {
    const readable = new stream.Readable()

    readable._read = () => {}
    readable.push(new Buffer(64)) //Так работает, вижу "final"
    // readable.push(new Buffer(64000)) //Так не работает, вижу только "chunk"
    readable.push(null)

    await pipeline(readable, a)
}
fn()

Есть такой код. Когда в transform отправляю 64 байта, все ок, он успешно завершается и я вижу "final". Когда 64000 - нет. Как это исправить? Как вывести "final" при переполнении потока?


Ответы (0 шт):