访问函数外部的变量

时间:2016-03-12 11:15:33

标签: javascript node.js

我想将文件的内容放在数组中。但是当我尝试访问变量fileArray时,它在lineReader.on之后为空。这段代码:

var fileArray=[]

    var lineReader = require('readline').createInterface({
      input: require('fs').createReadStream('file-to-read')  
    });

lineReader.on('line', function (line) {
  fileArray.push(line)
  //console.log(fileArray)  
});
// I want to get the array here but it is currently empty
console.log(fileArray)

由于

1 个答案:

答案 0 :(得分:2)

这里的问题是lineReader.on('line', function () {})是一个事件处理程序 - 即传递给它的函数在事件发生时被异步调用。但是,这并不会阻止您的其余代码执行 - 在您定义lineReader事件处理程序之后,在将任何内容添加到数组之前,下一行执行。为了得到你想要的结果,你的最终console.log需要在'close'事件处理程序中 - 当输入流到达终点时,这将被调用。