0

我正在尝试学习 javascript 以使用 node.js,但显然并没有完全关闭。我尝试逐行读取文件,解析行并将结果放入数组并返回数组。这是我所拥有的(不太好用):

var fs = require('fs'), Lazy = require('lazy');

function parseMyFile (filename) {
    var myArray= [];
    var lazy = new Lazy (fs.createReadStream(filename));

    lazy
        .lines
        .map(function(line){
            var parts = line.toString().split('|');

            var item = {
              bucket:   parts[1],
              uri:      parts[2].substring(2),
              token:    parts[0],
              fileDate: parts[3]
           };          

           myArray.push (item);
        });

     console.log(myArray);  // empty

         return myArray;
};


var myItems = parseMyFile ('Tokens.csv');

我确信这与闭包有关,只是不太明白。任何帮助,将不胜感激。

谢谢!

4

1 回答 1

1

这是一个惰性列表。它是异步行为的包装器。你试图在列表被填写之前检查它,所以它当然不起作用。

这个问题与闭包无关。这都是关于异步行为的。

我在那个惰性列表代码中看不到任何允许通用“完成时”回调的内容。

于 2012-08-07T13:11:33.663 回答