繁体   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