簡體   English   中英

Node.js-等待變量:回調

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM