我在这里看到了很多帖子,展示了如何使用回调进行异步函数调用。我已经做到了,但是,我似乎无法找到如何在函数外部使用从函数中检索的变量。在异步函数调用之外使用变量
var json = JSON.parse(body);
var accountID = json.accountId;
var getMatchData;
getRecentMatchData(accountID, function(err, res) {
getMatchData = res;
//console.log(res);
});
console.log(getMatchData);
我想使用getMatchData传递到我的app.post中的其他函数,但它打印出未定义。我如何访问此变量以在异步方法之外使用?我是否使用另一个回调?
的[我如何返回从一个异步调用的响应?(可能的复制https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an - 异步调用) – cartant
将* console.log(getMatchData)*放到异步函数调用的成功块中,或者将console.log放入函数中,然后在成功块上执行该函数。 至少这是我在做js filereader api时所做的。这就是我在我的ajax调用中所做的。 如果你试图在调用它后立即使用一个依赖于异步函数结果的变量,你总是会得到未定义的 – Merigold
代码是异步的,你需要将'console.log(getMatchData)'移动到函数处理器中 –