Node.js 推送项目后数组为空(同步)

Node.js 推送项目后数组为空(同步),node.js,Node.js,我试图从nodejs中的一个.txt文件中读取文件,当我访问每一行时,我将它推送到一个数组中,但最后,数组是空的 var array=[]; let lineReader = require('readline').createInterface({ input: require('fs').createReadStream('file.txt') }); lineReader.on('line', function (line) { console.log(

我试图从nodejs中的一个.txt文件中读取文件,当我访问每一行时,我将它推送到一个数组中,但最后,数组是空的

var array=[];

  let lineReader = require('readline').createInterface({
    input: require('fs').createReadStream('file.txt')
  });
  
  lineReader.on('line', function (line) {
    console.log(line);
    array.push(line);
  });

console.log(array);
.Txt文件内容

THIS IS LINE#1
THIS IS LINE#2
THIS IS LINE#3
[]
THIS IS LINE#1
THIS IS LINE#2
THIS IS LINE#3
输出

THIS IS LINE#1
THIS IS LINE#2
THIS IS LINE#3
[]
THIS IS LINE#1
THIS IS LINE#2
THIS IS LINE#3

问题是事情是异步发生的。您需要为
close
事件添加一个侦听器

lineReader.on("close", () => {
    console.log(array);
})

lineReader.on('line',function(line){…})
是不同步的(也就是说,传递给它的函数不是同步调用的)。你在标题中说它是同步的……但是事件侦听器(
on(…)
)是不同步的(正如你在输出中看到的)