【发布时间】:2021-06-29 05:40:44
【问题描述】:
在节点中,我们可以使用createReadStream 为文件创建一个读取流,然后基于该流,我们使用readline.createInterface 获取一个新的流,该流逐行发出数据。
const fileStream = fs.createReadStream(inputFilePath);
const rl = readline.createInterface({
input: fileStream,
crlfDelay: Infinity
});
for await (const line of rl) {
// do something
}
我有两个相关的问题:
- 据我了解,
for(x of y)语法适用于可迭代对象。但是流是不可迭代的,那么它是如何工作的呢? - 我想忽略
rl发出的第一行。rl上没有next()函数,因为它不是可迭代的。因此,如果我想跳过第一行,可以通过跟踪我们之前是否已经收到一行来执行此操作,然后在for of循环内使用 if 语句并忽略该行?
【问题讨论】:
标签: javascript node.js stream iterable