我有一个 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')