在数据查找条件下停止可读流

brvekthn  于 2021-09-23  发布在  Java
关注(0)|答案(0)|浏览(180)

我得到了一个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 (file) {

  Readable.from(file)
    .pipe(csv())
    .on('data', (data) => {
      if (data.tim > 59)
       return 'stop'
    })
}

只有当我将它推送到一个数组中,读取整个文件,然后在结束后返回一些内容时,这才有效。
我试过了 createReadStream 但不能与缓冲区一起工作,我得到了一个错误 ENAMETOOLONG: ,它可以很好地工作,但不能停止 on.('data')

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题