Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用异步请求多个URL_Javascript_Node.js_Asynchronous - Fatal编程技术网

Javascript 使用异步请求多个URL

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数组,由于该函数是第一个函数,

我正在使用ExpressJS创建我的第一个节点应用程序,我对如何使用Request和async请求多个url感到困惑。下面的代码指出了以下错误,“chart1未定义”


有人能给我解释一下如何定义这些并使其工作吗?

您的回调没有在任何地方定义
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
        });
    });
});