[英]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.