Promise.all() 和 .map()连用

本文介绍了一种使用Node.js遍历目录并找出其中最大文件的方法。通过读取目录下的所有文件,利用Promise处理异步操作,统计每个文件的大小,并最终确定最大的文件。此方法适用于文件管理和性能优化场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查找最大文件 

const FileSystem=require('./FilesSystem');
function(){
  return FileSystem.readDir(dir,'utf-8')
     .then(files=>{
        return Promise.all(files.map(file=>{
            return new Promise(resolve=>{
               fs.stat(path.join(dir,file),(err,stat)=>{
                   if(err) throw err;
                   if(stat.isDirectory()){
                       return resolve({
                          size:0
                       })
                   }
                   stat.file=file;
                   resolve(stat);
               })
            })
        }))
     })
     .then(stats=>{
        let biggest = stats.reduce((memo,stat)=>{
            if(memo.size<stat.size){
               return stat;
            }
            return memo;
        })
     })
 
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值