在node.js中的自定义流上放气

在node.js中的自定义流上放气,node.js,compression,node.js-stream,Node.js,Compression,Node.js Stream,我有一个简单的脚本: 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 = setInterv

我有一个简单的脚本:

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�
0123456789
我希望有一系列的9值,如果我只是从管道中删除
deflate
,效果会很好

read.pipe(process.stdout);
我得到的9值打印如下:

x�
0123456789

那么,为什么添加
deflate
不会打印9个值呢?

这就是
compression
%)p的乐趣。@AJAX示例代码只是以简单的方式显示问题,但实际用例包含更大的值,需要压缩。但基本问题仍然是:)不。压缩的乐趣在于,也就是压缩。如果大于
输入值
,则为关键值。