我希望程序等到getFiles
返回数组,并且应该在打印名为totalProjectFiles
的数组之前将其连接起来。
let totalProjectFiles = []
let projectDir = './defaults/'
function getFiles (dir, files_){
files_ = files_ || [];
var files = fs.readdirSync(dir);
for (var i in files){
var name = dir + '/' + files[i];
if (fs.statSync(name).isDirectory()){
getFiles(name, files_);
} else {
files_.push(name);
}
}
return(files_)
}
function ff (){
const a = getFiles(projectDir)
totalProjectFiles.concat(a)
console.log(totalProjectFiles)
}
ff()
答案 0 :(得分:0)
快到了。我建议检查文档: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function
您只需要一个await
async function ff (){
const a = await getFiles(projectDir)
totalProjectFiles.concat(a)
console.log(totalProjectFiles)
}
答案 1 :(得分:0)
let totalProjectFiles = []
async function ff (){
const a = await getFiles(projectDir)
totalProjectFiles.concat(a)
console.log(totalProjectFiles)
}
ff()
答案 2 :(得分:0)
请在内部添加等待功能
let totalProjectFiles = []
async function ff (){
const a = await getFiles(projectDir)
totalProjectFiles.concat(a)
console.log(totalProjectFiles)
}
ff()
答案 3 :(得分:0)
Concat返回一个新数组,而不对其进行突变,将其分配回
function ff (){
const a = getFiles(projectDir)
totalProjectFiles = totalProjectFiles.concat(a)
console.log(totalProjectFiles)
}