我们都知道,如果想读取某一目录下的文件时,需使用fs.readdir来进行,看如下代码:
function getFileList(filePath){
fs.readdir(filePath, (err, files)=> {
var listArr = [];
files.forEach(filename => {
listArr.push(filename);
})
return listArr;
})
}
const filePath = path.resolve(path.join(__dirname, '../public/images'));
getFileList(filePath) //undefined
我们可以看到,此时打印出的是undeifined,很明显,在异步操作readdir执行完之前,函数已经走完了,所以是个undeifined。我们再看一个例子:
function getFileList(filePath) {
var listArr = [];
fs.readdir(filePath, (err, files) => {
files.forEach(filename => {
listArr.push(filename);
})
})
return listArr
}
const filePath = path.resolve

在Node.js中,使用fs.readdir进行目录遍历是异步的,可能导致未定义的结果。本文介绍如何通过callback、Promise、async/await以及使用同步的fs.readdirSync来解决这一问题,提供四种不同的解决方案,确保遍历操作完成后再继续执行后续代码。
最低0.47元/天 解锁文章
2466

被折叠的 条评论
为什么被折叠?



