javascript - 如何获取javascript promise 的返回值?

标签 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())

最佳答案

您可能想要等待做出的 promise :

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())
})()

关于javascript - 如何获取javascript promise 的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45391439/

相关文章:

javascript - HTML5 富应用程序 : a way to deliver printable reports

javascript - 检查父方法是否在子方法中使用

javascript - 如何将onload添加到span

javascript - AngularJS:指示指令的范围

javascript - MQTT JavaScript 客户端未连接(协议(protocol)错误?)

javascript - javascript 数组对象逻辑中的小问题

javascript - sails.js:刷新之前,新创建的记录不会填充在页面上

javascript - Chrome 调试器未在 aspx 文件中显示 Javascript

javascript - 未处理的PromiseRejection警告: TypeError: Cannot read property 'close' of undefined

javascript - 集会 wsapiworkspacepermission 500 错误