一种常见的做法是使用异步模块。
npm install async
该
async模块具有处理各种形式的异步事件的原语。
对于您的情况,该
async#parallel调用将允许您同时向所有外部API发出请求,然后合并结果以返回给您的请求者。
由于您正在发出外部http请求,因此您可能会发现请求模块也很有帮助。
npm install request
使用
request和
async#parallel路由处理程序看起来像这样…
var request = require('request');var async = require('async');exports.handler = function(req, res) { async.parallel([ function(callback) { var url = "http://external1.com/api/some_endpoint"; request(url, function(err, response, body) { // JSON body if(err) { console.log(err); callback(true); return; } obj = JSON.parse(body); callback(false, obj); }); }, function(callback) { var url = "http://external2.com/api/some_endpoint"; request(url, function(err, response, body) { // JSON body if(err) { console.log(err); callback(true); return; } obj = JSON.parse(body); callback(false, obj); }); }, ], function(err, results) { if(err) { console.log(err); res.send(500,"Server Error"); return; } res.send({api1:results[0], api2:results[1]}); } );};您还可以在此处了解其他回调排序方法。



