Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript闭包和返回数组元素_Javascript - Fatal编程技术网

javascript闭包和返回数组元素

javascript闭包和返回数组元素,javascript,Javascript,我正在尝试学习使用node.js的javascript,显然不太了解闭包。 我试图逐行读取一个文件,解析该行,将结果放入数组并返回数组。以下是我所拥有的(不太管用): 我肯定这与闭包有关,只是不太明白。任何帮助都将不胜感激 谢谢 这是一个懒惰列表。它是异步行为的包装器。您试图在列表填写之前检查它,因此它当然不起作用 问题与闭包无关。这都是关于异步行为的 我在惰性列表代码中没有看到任何允许一般“完成时”回调的内容。请详细说明“不太有效”。代码本身似乎正确……您是否检查了执行console.log(

我正在尝试学习使用node.js的javascript,显然不太了解闭包。 我试图逐行读取一个文件,解析该行,将结果放入数组并返回数组。以下是我所拥有的(不太管用):

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


谢谢

这是一个懒惰列表。它是异步行为的包装器。您试图在列表填写之前检查它,因此它当然不起作用

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


我在惰性列表代码中没有看到任何允许一般“完成时”回调的内容。

请详细说明“不太有效”。代码本身似乎正确……您是否检查了执行
console.log(line)
映射是否应该执行?@Deestan这是OP的代码,但不是问题文本:“
console.log(myArray)”;//空的
”。OP希望
myArray
为空时它是非空的。关于数组部分,我看差不多是对的。但是line参数不是已经是字符串了吗?创建部件时部件是否包含数组?@代码“正确”,因为没有语法错误,但其编写方式假定文件I/O的异步完成将同步进行。
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');