我正在尝试懒惰地读取文件,但是我无法使用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
将引发异常。