node.js - 当数据找到条件时停止可读流
问题描述
我有一个 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')
解决方案
推荐阅读
- ios - 如何显示放置在 UIView .xib 文件中的 UITableView?
- php - 从 json Php 获取元素的访问权限
- screenshot - 如何让 KDE Spectacle 自动保存图片?
- json - 已弃用的 jp@gc 的替代品 - JSON 格式后处理器
- php - 如何在静态 url 中捕获 id 并将其重定向到 wordpress [301] 中的新 url
- postgresql - Postgresql 高级 SQL 中的反斜杠字符错误
- bash - Bash:如果只有字母,如何仅替换括号之间的内容
- java - 使用 RXTX Java 从串行监视器读取数据时出错
- c - 双向链表中的结构内部结构
- xampp - 调用未定义函数 odbc_prepare()