为啥nodejs文件系统先读取控制台再读取文件
Posted
技术标签:
【中文标题】为啥nodejs文件系统先读取控制台再读取文件【英文标题】:why nodejs file system read console first then read the file为什么nodejs文件系统先读取控制台再读取文件 【发布时间】:2021-12-04 18:50:49 【问题描述】:我可以使用 nodejs 文件系统读取文件:
const fs = require('fs');
fs.readFile('./assets/test1.txt', (err, data) =>
if(err)
console.log(err)
console.log(data.toString())
)
console.log('hello shawn!')
为什么先读console.log('hello shawn!')
,然后再读console.log(data.toString())
?
文件系统中是否还有其他内容先读取data
,然后在下面读取console
?
【问题讨论】:
【参考方案1】:这是因为.readFile
是一个异步操作。它的最后一个参数是回调函数,在操作完成后启动。我建议阅读有关callbacks 和event loop 的内容。
您可以使用函数readFileSync
的同步版本或使用utils.promisify
将回调函数转换为promise 并使用async/await 然后example。
【讨论】:
以上是关于为啥nodejs文件系统先读取控制台再读取文件的主要内容,如果未能解决你的问题,请参考以下文章