在getJSON完成之前执行代码

时间:2014-08-07 11:38:30

标签: javascript jquery

基本上。我正在尝试创建一个小的Web应用程序,它允许人们看到第n个最快的ISS通过以及良好的天气/可见性。为了尝试实现这一点,我调用OpenNotify API来获取给定Lat / Lon的最快传递,然后调用forecast.io API以获得给定位置的时间可见性。但是,在向第一个请求之前返回第二个请求的OpenNotify API返回的每个传递时间向forecast.io API发送多个API请求时,我遇到了问题,因此(我认为)两个结果都是一样的。

我尝试从$ .getJSON移动到$ .ajax,我在其中指定了async = false(正如您在代码中看到的那样)。但这似乎没有解决任何问题。任何帮助将不胜感激! (我已经放了网络请求的屏幕截图以及我从我的代码中得到的结果,目前,下方)Network Requests Results

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>");
                } 
            });
        });
    });
}    

0 个答案:

没有答案
相关问题