使用ejs模板在Nodejs中获取多个Https请求

时间:2017-09-04 11:37:16

标签: node.js ejs

获取第一个[const p1] HTTPS请求,但无法获取第二个[const p2],它显示我undefined.Where我失踪了

    function fetchJSON(url) {
  return new Promise((resolve, reject) => {
    request(url, function(err, res, body) {
      if (err) {
        reject(err);
      } else if (res.statusCode !== 200) {
        reject(new Error('Failed with status code ' + res.statusCode));
      } else {
        resolve(JSON.parse(body));
      }
    });
  });
}


 router.get('/news-and-media',function(req,res,next){
    const p1 = fetchJSON('http://example.com/wsplus/abs/123');
    const p2 = fetchJSON('http://example.com/blsd/blog_posts/312');
  Promise.all([p1],[p2]).then((data) => {
  console.log(data[0]);                            // getting data 
  console.log(data[1]);                           // this giving me undefined
    res.render("news-and-media", { getdata: data[0],banner:data[1]} );
  }).catch(err => console.error('There was a problem', err));
});

1 个答案:

答案 0 :(得分:1)

不要使用

Promise.all([p1], [p2])

Promise.all([p1, p2])

根据Promise.all() documentation说:

  

Promise.all(迭代);