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