基本上。我正在尝试创建一个小的Web应用程序,它允许人们看到第n个最快的ISS通过以及良好的天气/可见性。为了尝试实现这一点,我调用OpenNotify API来获取给定Lat / Lon的最快传递,然后调用forecast.io API以获得给定位置的时间可见性。但是,在向第一个请求之前返回第二个请求的OpenNotify API返回的每个传递时间向forecast.io API发送多个API请求时,我遇到了问题,因此(我认为)两个结果都是一样的。
我尝试从$ .getJSON移动到$ .ajax,我在其中指定了async = false(正如您在代码中看到的那样)。但这似乎没有解决任何问题。任何帮助将不胜感激! (我已经放了网络请求的屏幕截图以及我从我的代码中得到的结果,目前,下方)
var checkISS = function(){
$.getJSON('http://api.open-notify.org/iss-pass.json?lat=' + latCont + '&lon=' + longCont + '&alt=20&n=2&callback=?', function(data) {
issResponse = data['response'];
issResponse.forEach(function(item){
riseTime = new Date (item.risetime * 1000).toISOString();
console.log("RiseTime = " + riseTime);
riseTimeHour = riseTime.substring(11,13);
console.log("RiseTimeHour = " + riseTimeHour);
weatherRiseTime = riseTime.substring(0, riseTime.length - 5);
$.ajax({
url: 'https://api.forecast.io/forecast/' + apiKey + '/' + latCont + ',' + longCont + ',' + weatherRiseTime + '?callback=?',
dataType: 'json',
data: data,
async: false,
success: function(data){
$("body").append(riseTime + " time visibility be " + data.hourly.data[riseTimeHour].cloudCover + "<br>");
}
});
});
});
}