jQuery: wait for function to complete to continue processing?

后端 未结 9 1141
轮回少年
轮回少年 2020-12-06 00:28

Hey all. I have, what appears to be, a trivial problem. I have the following JavaScript:

$(function() {
    var r = GetResults();

    for(var i = 0; i <         


        
9条回答
  •  渐次进展
    2020-12-06 01:04

    The short answer is that you can't block on an asynchronous operation...which is of course, the meaning of "asynchronous".

    Instead, you need to change your code to use a callback to trigger the action based on the data returned from the $.getJSON(...) call. Something like the following should work:

    $(function() {
      GetResults();
    });
    
    function GetResults() {
      $.getJSON("/controller/method/", null, function(data) {
        for(var i = 0; i < data.length; i++) {
          // Do stuff with data
        }
      });
    }
    

提交回复
热议问题