node--初步了解-05 使用 pormise 异步删除文件

/**
*@ 使用promise 异步删除文件
*/

let fs =require("fs");
let path =require("path");

function removeDir(p) {
//使用promise 返回变速 promise
return new Promise((resolve ,reject)=>{
//判断文件类型, 如果是目录,继续递归, 如果是文件就是删除
fs.stat(p,(err,statObj)=>{
if (statObj.isDirectory()){
//是目录
fs.readdir(p,function (err,dirs) {
//映射成路径
dirs=dirs.map(dir=>path.join(p,dir));
//使用递归映射成 pormise
dirs = dirs.map(dir=>removeDir(dir));
//删除完子目录,删除自己
Promise.all(dirs ).then(
()=>{
fs.rmdir(p,resolve);
}
)
})
} else{
fs.unlink(p,resolve);
}
});
});
}
removeDir("a").then(data=>{
console.log("删除成功");
})
原文地址:https://www.cnblogs.com/liujzcom/p/9527169.html