【问题标题】:How to use data events on cloned streams in cloneable-readable? : NodeJS如何在可克隆可读的克隆流上使用数据事件? : 节点
【发布时间】:2021-09-06 14:24:04
【问题描述】:

我想克隆一个读取流。目前,我正在使用readable-stream-clone npm 包进行操作。使用代码:

const fs = require('fs')
const readStream = fs.createReadStream('smallTextFile.txt', { highWaterMark: 5 })
const ReadableStreamClone = require('readable-stream-clone')

const readStream1 = new ReadableStreamClone(readStream)
const readStream2 = new ReadableStreamClone(readStream)

readStream1.on('data', (chunk) => {
  console.log('1', chunk.toString())
})

readStream2.on('data', (chunk) => {
  console.log('2', chunk.toString())
})

代码的输出是:

1 This 
2 This 
1 is a 
2 is a 
1 small
2 small
1  reco
2  reco
1 rd
2 rd

smallTextFile.txt 中的内容:

This is a small record

但使用readable-stream-clone 的问题是它每周只有3000 次下载,而且没有授权。 还有另一个 npm 包cloneable-readable 它是一个许可包。谁能帮我使用cloneable-readable 包实现上述代码?

【问题讨论】:

    标签: javascript node.js node-streams cloneable


    【解决方案1】:

    你可以使用下面的代码通过 cloneable-readable 来做同样的事情,它类似于 readable-stream-clone,当你在 cloneable 中包装一个蒸汽时,它会在输出中给你一个新的流。

    const fs = require('fs')
    const readStream = fs.createReadStream('smallTextFile.txt', { highWaterMark: 5 })
    const cloneable = require('cloneable-readable')
    
    const readStream1 = cloneable(readStream);
    const readStream2 = cloneable(readStream);
    
    readStream1.on('data', (chunk) => {
      console.log('1', chunk.toString())
    })
    
    readStream2.on('data', (chunk) => {
      console.log('2', chunk.toString())
    })
    

    【讨论】:

      猜你喜欢
      • 2020-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多