[英]Nodejs - Waiting for a variable: Callbacks
我了解使用回调将意味着该函数将等到返回结果后再返回结果,但是如果我想执行更多代码怎么办?
以下是我要执行的示例。 isAvailable
检查某人的帐户中是否有足够的余额,如果可以提取资金,则返回true。
我的问题是该函数异步执行,因此它不等待if语句执行前返回余额。我应该将if语句与另一个函数分开并使用回调函数来等待余额吗? 如果是这样,我将如何做?
function isAvailable(user, withdrawal, callback) {
var balance = getBalance(user, callback);
if (withdrawal > balance) {
callback(false);
} else if (withdrawal < balance) {
callback(true);
}
}
我了解使用回调将意味着该函数将等到返回结果后再返回结果
不会。异步意味着它们立即返回(不返回任何内容),但随后使用结果调用回调函数。
在您的示例中,您将获得的balance
不是作为getBalance
的返回值,而是作为应作为第二个参数传递给回调函数的调用的参数:
getBalance(user, function(balance) {
…
});
在其中,您将放置其他代码以执行:
function isAvailable(user, withdrawal, callback) {
getBalance(user, function(balance) {
if (withdrawal > balance) {
callback(false);
} else if (withdrawal < balance) {
callback(true);
} else { // if (withdrawal == balance)
callback(null); // don't forget this
}
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.