[英]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.