Node.js 推送项目后数组为空(同步)
我试图从nodejs中的一个.txt文件中读取文件,当我访问每一行时,我将它推送到一个数组中,但最后,数组是空的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(
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(…)
)是不同步的(正如你在输出中看到的)