Node.js + 延迟:迭代文件行



我正在尝试懒惰地读取文件,但是我无法使用each().我想读取文件的第一行,然后读取另一个文件的第一行,依此类推。

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

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 方法的代码片段:

异步迭代序列时使用此方法。任何 从序列继承的类型必须实现此方法,否则无法实现 支持异步迭代。

请注意,此方法不应由 应用程序代码。相反,它旨在作为实施者的一种手段 以潜在地定义支持任一 同步或异步迭代。

您在此处遇到的问题是Lazy.readFile返回异步序列。因此getIterator不起作用,因为Iterator类型仅公开同步接口。

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

最新更新