我想在node.js中发起多个请求,以获取一些外部API的响应,并将它们合并到一个数组中。我使用for循环来实现这一点。这是我的代码:
res.setHeader('Content-Type', 'application/json');
const sub = req.query.days_subtract;
const enddate = req.query.end_date;
var array = [];
for (var i = 0; i < sub; i++) {
request("https://api.nasa.gov/planetary/apod?date=" + subtractDate(enddate, i) + "&api_key=DEMO_KEY", function(error, response, body) {
array.push(body);
// console.log(body);
});
}
res.send(array);
但是这段代码一直返回[]。我知道这是因为for循环只是启动了异步请求,却没有等待它们完成。我尝试使用async/await,但也没有起作用。那么如何等待这个循环完成获取请求并将它们推送到数组中,以便可以显示给用户呢?