簡體   English   中英

如何從另一個可讀流返回 w filtred Readable stream

[英]How to return w filtred Readable stream from another readablestream

我正在嘗試過濾 inputStream 中的數據,然后將其返回到 outputStream,這是我正在處理的示例:

const filterStream = async (inputStream, regexp) => {
      let outputStream = inputStream;
      outputStream.on("data", (data) => {
        if (data.match(regexp)) return data;
      });    
      return outputStream;
    };

    const inputStream = stream.Readable.from(["aaa", "aAa", "aab"]).setEncoding(
      "utf8"
    );
    
    const outputStream = filterStream(inputStream, /aaa/i);
    console.log('data of outputstream')

我在web上找到了一個使用stream.Tranform的解決方案,還有其他方法嗎

謝謝你的幫助

我使用Transform來更新我最初的 Readable inputstream輸入流中的數據,這就是我所做的:

const filterStream = async (inputStream, regexp) => {
  let outputStream = inputStream;
  outputStream = inputStream.pipe(
    new stream.Transform({
      objectMode: true,
      transform(chunk, encoding, callback) {
        let data = chunk.toString();
        if (data.match(regexp)) {
          //we can push data and call the callback 
          this.push(data);
          callback();
          // or just call the callback with data as params 
          // callback(null, data);
        }
      },
    })
  );

  outputStream.on("data", (data) => {
    console.log(data);
  });
  return outputStream;
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM