У меня есть простой скрипт:
const {Readable} = require('stream')
const zlib = require('zlib');
const deflate = zlib.createDeflate();
var read = new Readable();
read._read = function () {};
read.pipe(deflate).pipe(process.stdout);
var i = 0;
const interval = setInterval(() => {
if(i == 10) {
read.push(null)
clearInterval(interval)
} else {
read.push(JSON.stringify(i++));
}
}, 1000);
печатает только одно значение, как показано ниже:
x�
Я ожидал серию из 9 значений, которая прекрасно работает, если я просто удаляю deflate
из трубы
read.pipe(process.stdout);
Я получил напечатанное значение 9, как показано ниже:
0123456789
Итак, почему при добавлении deflate
не выводятся 9 значений?