深度 先序 串联
let fs = require('fs');
function preSeriesDeep(dir,callback){
// 有儿子就删除儿子
// 儿子删除完毕后删除自己 只想 第一层和第二层的关系
fs.stat(dir,function(err,statObj){
if(statObj.isFile()){
// 是文件删除即可
fs.unlink(dir,callback);
}else{
fs.readdir(dir,function(err,dirs){
// dirs 是读取到的儿子 // [b,1.js,e]
dirs = dirs.map(item=>path.join(dir,item));
let index = 0;
function next(){ // 取出第一个删除掉
if(index == dirs.length) return fs.rmdir(dir,callback)
let currentPath = dirs[index++];
// 删除当前第一个儿子 成功后删除第二个儿子
preDeep(currentPath,next);
}
next();
})
}
})
}
网友评论