demo.js:
const fs = require('fs'); fs.readdir('./public',function(err,files) { var wenjianjia = []; (function iterator(i) { if(i==files.length){ // 如果递归结束 console.log(wenjianjia); return; } fs.stat('./public/'+files[i],function(err,stats) { // 该函数是异步的。 if(stats.isDirectory()){ wenjianjia.push(files[i]); } iterator(i+1); // 通过递归实现异步流程控制(异步变同步) }); })(0); // 立即执行函数 });