繁体   English   中英

Node.js + Lazy:迭代文件行

[英]Node.js + Lazy: Iterate file lines

我试图懒惰地读取文件,但是我不能使用each() 我想读取文件的第一行,然后读取另一个文件的第一行,依此类推。

我正在尝试使用Iterator,但没有成功。 这是我的代码:

var Lazy = require('lazy.js');

var it = Lazy.readFile("log.txt")
        .lines()
        .getIterator();

while(it.moveNext()){
    console.log(it.current());
}

Lazy.readFile("log.txt").lines().size()返回0。

但是,这很好用:

Lazy.readFile("log.txt")
        .lines()
        .each(function(line){
            console.log(line);
        });

这是Lazy.js的一部分,我承认我并没有做出色的解释。 让我从当前文档中为getIterator方法复制一个代码段:

在序列上异步迭代时使用此方法。 从Sequence继承的任何类型都必须实现此方法,否则它不能支持异步迭代。

请注意, 此方法不应由应用程序代码直接使用 相反,它旨在作为实现者潜在地定义支持同步或异步迭代的自定义序列类型的一种手段。

您在这里遇到的问题是Lazy.readFile返回异步序列。 所以getIterator将不起作用,因为Iterator类型仅公开一个同步接口。

自从您发布此问题以来,我实际上已经更新了Lazy.js。 从0.3.2开始,在异步序列上调用getIterator 将引发异常

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM