我需要從兩個不同的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) –