我正在使用ExpressJS创建我的第一个节点应用程序,我对如何使用Request和async请求多个url感到困惑。我在下面的代码吐出了以下错误," chart1未定义"。
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
});
});
});
有人可以向我解释如何定义这些并使其正常工作吗?
答案 0 :(得分:0)
您的回调未在任何地方定义chart1
。也许您想查看results[0]
?
使用async.parallel,results
变量包含所有函数的结果,顺序相同。当您致电next(null, firstData)
时,您告诉异步将firstData
的值放入results
数组,并且由于该函数是第一个,它将进入results[0]
(下一个是results[1]
等)。