为了账号安全,请及时绑定邮箱和手机立即绑定

async 读取文件

async 读取文件

交互式爱情 2018-11-14 13:10:57
async function a() {    var result = await b()    res.json(result)}var fse = require('fs-extra')function b() {    var fpath = '/data.json'    // 异步读取文件    fse.readJson(fpath, (err, data) => {        if(err) console.log(err)        return data    })}上述代码中, result 是 undefined,即并没有得到读取文件后的数据。我应该怎么修改,让result 得到 data.json 的内容呢?
查看完整描述

1 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

这种情况建议你使用stream 而且你的b函数并没有返回一个Promise 建议了解一下async/await和Promise之间的关系, 两种处理方法

1.

var data = fs.createReadStream('/data.json')
data.pipe(res)

2.

function b () {

    var fpath = '/data.json'

    return new Promise((resolve, reject) =>{

        readJson(fpath, (err, data) => {

            if (err) reject(err)

            resolve(data)

        })

    })

}


查看完整回答
反对 回复 2018-12-06
  • 1 回答
  • 0 关注
  • 654 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信