通过async和await查看node中fs的文件夹

本文介绍了一个使用Node.js进行异步文件系统操作的方法,包括检查路径是否为目录及读取目录下所有子目录的功能实现。通过Promise和fs模块,展示了如何避免回调地狱并优雅地处理文件系统操作。

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


let rpt = async (path) =>{
    return new Promise((res,rej)=>{
      fs.stat(path,(err,data)=>{
        if(err){
          console.log("找不到此文件")
          return
        }
        if(data.isDirectory() == true){
          res(true)
        }else{
          res(false)
        }
      })
    })
}

let pd =  (path)=>{
let arr = []
fs.readdir(path,async (err,data)=>{
  if(err){
    console.log("文件路径错误")
    return
  }

  for(let i = 0;i<=data.length-1;i++){
    if(await rpt(path+"/"+data[i]) == true){
      arr.push(data[i])
    }
  }
  
  console.log("最终arr:"+arr)
})

}

pd("./html")

 

asyncawait的主要应用场景是在处理异步操作的场景中,例如网络请求、文件读取、定时器等等。使用asyncawait可以让异步操作的代码更加简洁易于理解。 下面是一些使用asyncawait的常见场景: 1. 网络请求:使用fetch或XMLHttpRequest等API进行网络请求时,可以使用asyncawait来处理异步操作,以获取服务器响应处理错误。 ``` async function fetchData() { try { const response = await fetch('https://example.com/data'); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } } ``` 2. 文件读取:使用Node.jsfs模块进行文件读取时,也可以使用asyncawait来处理异步操作,以读取文件内容处理错误。 ``` const fs = require('fs'); async function readFile() { try { const data = await fs.promises.readFile('/path/to/file', 'utf-8'); console.log(data); } catch (error) { console.error(error); } } ``` 3. 定时器:使用setTimeout或setInterval进行定时器操作时,可以使用asyncawait来处理异步操作,以控制定时器的执行处理错误。 ``` async function delay() { try { await new Promise(resolve => setTimeout(resolve, 1000)); console.log('delayed 1 second'); } catch (error) { console.error(error); } } ``` 总的来说,asyncawait可以用于任何异步操作的场景,以简化异步代码的编写调试。它们可以让异步代码结构更加清晰易于维护,同时也可以避免回调地狱Promise链式调用的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值