【问题标题】:How to run getJSON sequentially如何按顺序运行 getJSON
【发布时间】:2025-12-20 04:10:16
【问题描述】:

我正在尝试在我的网页上嵌入特定日期的天气预报。 以下是我在测试页面 http://elhuracantango.com/pogoda 上的代码中我无法正常工作的例外情况:

<script>
function b(date){
$.getJSON(url + apiKey + "/" + lati + "," + longi + ","+ date+ "?units=si&lang=ru&exclude=hourly&callback=?", 
function(data) {
 $('#weather').append(weekdays[dateobj.getDay()] + " : "+ data.daily.data[0].summary))
}
b("2015-06-25T12:00:00");
b("2015-06-26T12:00:00");
b("2015-06-27T12:00:00");
b("2015-06-28T12:00:00");
</script>

但网页上的预报并不总是按顺序显示。

【问题讨论】:

    标签: javascript jquery jsonp


    【解决方案1】:

    它是一个异步操作,所以你不能保证哪个会先返回结果。你必须使用回调/承诺来处理这个。

    如果尝试在特定时间间隔更新天气。使用setInterval

    例如:

    function b(date){ 
      var result = // ajax call here.
    
      return result 
    }
    
    
    setInterval(function(){
         var html = b(new Date());
         $('#result').html(html);
    }, 1000);
    

    【讨论】:

      最近更新 更多