Javascript 使用异步请求多个URL
我正在使用ExpressJS创建我的第一个节点应用程序,我对如何使用Request和async请求多个url感到困惑。下面的代码指出了以下错误,“chart1未定义”Javascript 使用异步请求多个URL,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,我正在使用ExpressJS创建我的第一个节点应用程序,我对如何使用Request和async请求多个url感到困惑。下面的代码指出了以下错误,“chart1未定义” 有人能给我解释一下如何定义这些并使其工作吗?您的回调没有在任何地方定义chart1。也许您想检查结果[0] 对于async.parallel,results变量以相同的顺序包含所有函数的结果。当您调用next(null,firstData)时,您告诉async将firstData的值放入results数组,由于该函数是第一个函数,
有人能给我解释一下如何定义这些并使其工作吗?您的回调没有在任何地方定义
chart1
。也许您想检查结果[0]
对于async.parallel,
results
变量以相同的顺序包含所有函数的结果。当您调用next(null,firstData)
时,您告诉async将firstData
的值放入results
数组,由于该函数是第一个函数,它将进入results[0]
(下一个是results[1]
,等等)。Mmm,此代码不定义chart1
或chart2
。它们的定义是什么?我认为这与ExpressJS没有任何关系,您只是没有定义变量,或者无法从这个上下文访问它们
router.get('/', function(req, res) {
async.parallel([
function(next) {
apiRequestGoesHere(chart1, function(error) {
request.get('http://203.33.33.44:8080/reports/43?type=0&key=fakekey'),
next(null, firstData);
});
},
function(next) {
anotherApiRequest(chart2, function(error) {
request.get('http://203.33.33.44:8080/reports/42?type=0&key=fakekey'),
next(null, secondData);
});
}],
function(err, results, firstData, secondData) {
// results is [firstData, secondData]
res.render('index', {
title: 'Home KP',
firstData: chart1
});
});
});