【发布时间】:2018-06-22 23:05:09
【问题描述】:
在我的 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
}
getBalance 函数:
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);
}
});
}
我知道我需要使用回调函数,但我仍然无法理解这个概念。有人可以帮助我并最好提供有关如何创建回调函数的解释吗?谢谢!
【问题讨论】:
-
如果
getBalance发送 POST 请求它是异步函数,那么accountBalance是一个承诺或未定义(如果你使用回调)。你能展示一下getBalance函数的样子吗? -
我在帖子中添加了 getBalance 功能
-
您错误地定义了
options对象。所以getBalance是异步函数,你不能立即得到响应,所以options.accountBalance将是未定义的。从getBalance函数调用muFunc怎么样,只需将它作为回调传递:getBalance(myFunc)并在那里调用它。