promise 获取文件内容

文件结构图

{
    "next":"b.json",
     "msg":"this is a"
}
a.json
{
    "next":"c.json",
     "msg":"this is b"
}
b.json
{
    "next":"null",
     "msg":"this is c"
}
c.json

上一层

const fs=require('fs')
const path=require('path')


//用jpromise获取文件内容

function getFileContent(filName){

      const  promise= new Promise((resolve, reject)=>{
         
        const fullFileName=path.resolve(__dirname,'files',filName)

         fs.readFile(fullFileName,(err,data)=>{

              if(err){
                  reject(err)
                  return
              }
              resolve(
                  JSON.parse(data.toString())
                  )
         })
            
      })
      return promise
}

getFileContent('a.json').then(aData=>{
     console.log("a data", aData)
     return getFileContent(aData.next)
}).then(bData=>{
    console.log("b data", bData)
    return getFileContent(bData.next)
}).then(cData=>{
    console.log("c data", cData)
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PromiseJavaScript中处理异步操作的一种方式。它可以用来处理需要等待一段时间才能获取结果的操作,例如网络请求或者读取文件等。 当我们创建一个Promise对象时,它会立即开始执行一个异步操作。这个异步操作可能是一个网络请求、一个定时器或者其他需要一段时间才能完成的任务。Promise对象有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。 在Promise对象中,我们可以使用then()方法来处理异步操作的结果。then()方法接收两个参数,第一个参数是处理成功情况的回调函数,第二个参数是处理失败情况的回调函数。当异步操作成功完成时,成功回调函数会被调用,并且可以获取到异步操作的结果;当异步操作失败时,失败回调函数会被调用,并且可以获取到失败的原因。 下面是一个使用Promise获取值的示例: ```javascript function fetchData() { return new Promise((resolve, reject) => { // 模拟异步操作 setTimeout(() => { const data = 'Hello, Promise!'; // 模拟成功情况 resolve(data); // 模拟失败情况 // reject(new Error('Something went wrong!')); }, 2000); }); } fetchData() .then((result) => { console.log(result); // 输出:Hello, Promise! }) .catch((error) => { console.error(error); // 输出:Error: Something went wrong! }); ``` 在上面的示例中,fetchData()函数返回一个Promise对象。在Promise的构造函数中,我们模拟了一个异步操作,通过setTimeout函数模拟了一个2秒后才能获取到结果的情况。当异步操作成功完成时,我们调用resolve()方法并传入结果;当异步操作失败时,我们调用reject()方法并传入错误信息。 在使用Promise时,我们可以通过链式调用then()方法来处理异步操作的结果。在成功回调函数中,我们可以获取到异步操作的结果,并进行相应的处理;在失败回调函数中,我们可以获取到失败的原因,并进行错误处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值