【发布时间】:2015-11-05 02:07:15
【问题描述】:
我正在使用 Express4 构建 NodeJS 服务器。我将此服务器用作前端 Angular 应用程序和 3rd 方 API 之间的中间人。 我创建了我的前端应用程序请求的某个路径,我希望在该路径上多次调用 API 并合并所有响应,然后发送结果响应。 我不确定如何执行此操作,因为我需要等到每个 API 调用完成。 示例代码:
app.post('/SomePath', function(req, res) {
var merged = [];
for (var i in req.body.object) {
// APIObject.sendRequest uses superagent module to handle requests and responses
APIObject.sendRequest(req.body.object[i], function(err, result) {
merged.push(result);
});
}
// After all is done send result
res.send(merged);
});
如您所见,我在一个循环中调用 API,具体取决于我在请求中收到多少 APIObject.sendRequest。
完成所有操作并合并 API 响应后如何发送响应?
谢谢。
【问题讨论】:
-
问题是
APIObject.sendRequest是异步的,所以for循环在实际请求完成之前就结束了? -
这里有很多问题,这就是其中之一。有没有其他方法可以做到这一点?
标签: javascript node.js express superagent