在数据找到条件时停止可读流

问题描述

我有一个 csv 缓冲区,我将它发送到一个函数。 在缓冲区中我得到了这个数据:

name,age
tom,33
pal,22
tim,60
jon,12

我使用一个节点 stream 将它通过管道连接到一个带有 csv-parser 的对象,当我走的时候,我想看看是否满足条件,如果我们发现 tim 的年龄已经超过 59 我希望它停止所以 jon 永远不会被读取,我希望这个函数返回一个字符串。

import { Readable } from 'stream'
import csv from 'csv-parser'

export default async function (buffer) {
  Readable.from(buffer)
    .pipe(csv())
    .on('data',(data) => {
      if (data.age > 59)
       return 'stop'
    })
}

这仅在我将其推送到数组时才有效,读取整个文件,然后最后返回一些内容

我尝试了 createReadStream 但对缓冲区不起作用,我得到并出错 ENAMetoOLONG:,使用流它运行良好但无法停止 on.('data')

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)