我在这里看到了很多帖子,展示了如何使用回调进行异步函数调用。我已经使它工作了,但是,我似乎无法找到如何利用从函数外部的函数中检索的变量。
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中的其他函数,但是它打印为未定义。如何访问此变量以在异步方法之外使用?我是否使用另一个回调?
答案 0 :(得分:1)
在这种情况下,您将不得不使用async waterfall之类的东西。最后它意味着另一个回调。 你的示例代码示例很小,可以编写正确的重构,但这会有所帮助。
async.waterfall([
function(callback) {
getRecentMatchData(accountID, function(err, res) {
callback(err, res);
getMatchData = res;
//console.log(res);
})
},
function(getMatchData, callback) {
// getMatchData now equals 'res'
// do what you have to do with getMatchData
callback(null, 'result');
}
], function (err, result) {
// result now equals 'result'
});