2017-09-04 138 views
0

獲取第一[常量P1] HTTPS請求的NodeJS讀取多HTTPS請求,但無法提取第二個[常量P2]它顯示我undefined.Where我在想念
使用EJS模板

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

唐「T使用

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

Promise.all([p1, p2]) 

按照Promise.all() documentation它是說:

Promise.all(迭代);

+0

燁的到來感謝@Gregory NEUT。但我懷疑他們之間的尊重 – venkatesh

+0

在promise.all的第一個調用中,你給它兩個包含Promise的數組。在第二個調用中,你給出了一個Promise數組。函數通過你給出的數組作爲參數並對待它。 –