【发布时间】:2017-11-14 10:17:06
【问题描述】:
我正在尝试在我的一个路由器中将异步和请求实现为异步 API 请求操作。终点只是一个查询字符串,我试图返回一个包含所有调用结果的数组或对象。到目前为止只有两个:
router.get('/', function(req, res) {
async.parallel([
function(next) {
request(queryString + 'end point string', function(error, response, body) {
if (!error && response.statusCode == 200) {
var unsPAM = JSON.parse(body);
};
console.log(error);
});
},
function(next) {
request(queryString + 'end point string', function(error, response, body) {
if (!error && response.statusCode == 200) {
var unsAll = JSON.parse(body);
};
console.log(error);
});
}],
function(err, results) {
res.render("api-results", [results]);
});
});
这正是我想要做的。如果我在请求后 console.log 每个变量的结果它可以正常工作,但没有返回任何内容并且我的 ejs 模板没有被提供。
我也尝试过以各种格式(数组/对象形式)使用类似下面的东西,但我似乎无法让它工作:
res.render("api-results", { unsPAM: unsPAM, unsAll: unsAll });
我认为这是因为请求的结果并没有以某种方式进入异步数组。任何建议/最佳实践解决方案/想法改变将不胜感激。
谢谢。
【问题讨论】:
标签: node.js express asynchronous request