//找到html目录下的所有目录,并打印出来
var dirArray = new Array();
fs.readdir("html", (err, files) => {
if (err) console.log(err);
//选择递归调用来解决
(function getdir(i){
if(i === files.length){
console.log(dirArray);
return;
}
fs.stat("html/"+files[i],(error,stats)=>{
if(error){console.log(error);return;}
//下面一句让我搞不懂
if(stats.isDirectory()) {dirArray.push(files[i]);console.log(files[i])}
})
getdir(i+1);
})(0)
})
// 最终结果:
// [](预想的结果是['bb','upload'])
// bb
// upload
fs.stat()是异步函数,想让该函数不影响后面语句的正常执行,采用递归方法的话,就得把第33行的 getdir(i+1) 写在fs.stat的回调函数里。