我需要从两个不同的API端点获取数据,并且在获取这两个数据之后,我应该对这些数据执行一些操作(即比较两个数据源的数据)。同步多个API调用
我知道如何从一个API中获取数据,然后调用回调函数来处理数据。我这样做如下。
function getJSON(options, cb) {
http.request(options, function(res){
var body = "";
res.on("data", function(chunk){
body += chunk;
});
res.on("end", function(){
var result = JSON.parse(body);
cb(null, result);
});
res.on("error", cb);
})
.on("error", cb)
.end();
}
var options = {
host: "api.mydata1.org",
port: 8080,
path: "/data/users/3",
method: "GET"
}
getJSON(options, function(err, result) {
if (err) {
return console.log("Error getting response: ", err);
}
// do something with the data
});
现在,我想有这样的:
var options2 = {
host: "api.mydata2.org",
port: 8080,
path: "/otherdata/users/3",
method: "GET"
}
这些将是连接到其他的API的选项,并有一个回调函数将被调用每当数据从两者都加载了 API。我怎样才能做到这一点?
查看承诺:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises。这个主题已经在堆栈溢出(例如, [JavaScript等到所有的异步调用完成](https://stackoverflow.com/q/34205266/218196) –