繁体   English   中英

访问函数外的变量

[英]Access variable outside a function

我想把一个文件的内容放在一个数组中。 但是当我尝试访问变量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)

谢谢

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM