我有一个.txt
要保存在 JS 数组中的文件,然后console.log
是该数组。我从这个答案中知道如何将文件读入数组,但问题是当我尝试访问console.log
数组时,它会将其记录为空。这是我的代码:
const fs = require('fs')
let arr = []
let fileReader = async () => {
await fs.readFile('temp.txt', (err, data) => {
if (err) throw err;
console.log(data.toString()); // confirming that line is successfully read
arr.push(data.toString());
})
console.log(arr)
}
fileReader()
我想它console.log
会等到数组完成填充fs.readFile()
,所以它会打印填充的数组。请注意,我console.log
在读取每一行时,以确认文本确实被推送到数组中。
有谁知道为什么这种方法行不通,或者我该如何以不同的方式做到这一点?我现在想坚持异步readFile
而不是同步readFileSync
。请注意,如果我确实想同步执行此操作,则此代码有效:
const fs = require('fs')
let arr = fs.readFileSync("temp.txt").toString('utf-8').split("\n")
console.log(arr)