javascript闭包和返回数组元素

时间:2012-08-07 13:04:25

标签: javascript

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

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');

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

我在懒惰列表代码中没有看到任何允许通用“完成后”回调的内容。