如何获得javascript中的返回值承诺?

时间:2017-07-29 16:17:42

标签: javascript node.js

我正在尝试读取一个文件而我希望该逻辑位于函数内部,我做了 - 就在下面,我看到我应该根据promise对象得到结果,但我不确定,下面的代码输出undefined。请告诉我如何解决这个问题?

 var fs = require('fs');


 function readAppData() {
        var content;
        fs.readFile('app-lock.json', function read(err, data) {
            if (err) {  console.log(err); }
            try {

                content = JSON.parse(data);
            } catch (err) {
                console.log(err);
            }
        }).then(t => {return content});

    }

    console.log(readAppData())

1 个答案:

答案 0 :(得分:1)

您可能希望等待所做的承诺:

function readAppData() {
    return new Promise(function(res,thr){
    fs.readFile('app-lock.json', function read(err, data) {
        if (err) { thr(err);}
        try {
            res(JSON.parse(data));
        } catch (err) {
            thr(err);
        }
    })
    })
}

(async function(){
   console.log(await readAppData())
})()