微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在数据找到条件时停止可读流

我有一个 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 举报,一经查实,本站将立刻删除。