首页 > 解决方案 > 从函数获取返回值后的Node.JS回调

问题描述

在我的 main.js 文件中,我有这个对象:

var options = {
    foo: 'bar',
    foofoo: 'barbar',
    accountBalance: getBalance()
};

函数getBalance()在获取用户帐户资金余额的服务器上发出 POST 请求。返回余额后,我需要调用另一个函数myFunc(),如下所示:

var options = {
    foo: 'bar',
    foofoo: 'barbar',
    accountBalance: getBalance() //when accountBalance is returned, call myFunc() from here
};

function muFunc(){
//do something
}

获取平衡功能:

var request = require('request');
function getBalance(){
        request(POSToptions, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            return body.balance;
         } else {
           console.log("ERR" + body);
        }
     });  
  }

我知道我需要使用回调函数,但我仍然无法理解这个概念。有人可以帮助我并最好提供有关如何创建回调函数的解释吗?谢谢!

标签: node.jscallback

解决方案


你的 getBalance() 在执行 getBalance() 之前返回

您可以使用异步/等待

// npm install--save request
// npm install--save request-promise

var request = require('request-promise');

var getBalance = async () {
    return await request(POSToptions);
}


const muFunc = async () => {
    //do something
    var options = {
        foo: 'bar',
        foofoo: 'barbar',
        accountBalance: await getBalance()
    };
}

推荐阅读