2016-11-30 69 views
0

我正在使用jquery get函数从服务器(Laravel应用程序)检索数据。数据通常是一组对象。简化.js代码如下所示:将响应插入对象数组

$(function(){ 
    var results = []; 
    var getIt = function(){ 
     $.get('results', function(response){ 
      $.each(response, function(index, value){ 
       results.push(value); 
      }); 
     }); 
    }; 
    getIt(); 
    console.log(results.length); 
}); 

但控制台记录0,所以数组为空; 它有什么问题。该阵列应可用于以后的功能 。谢谢你的建议。

+0

'$ .get()'是异步的;你正在尝试在交付之前吃披萨。查看我标记为重复的问题以获取更多详细信息。 –

+0

谢谢大家的回答;我试图寻找它,但方向不对;这听起来更清楚了;谢谢; – BillCode

回答

0

在填充之前,您正在使用results阵列。您需要等待您的GET /results首先返回。假设你的代码的其余部分作品,下面的变化将console.log填充的数组:

$(function(){ 
    var results = []; 
    var getIt = function(){ 
     $.get('results', function(response){ 
      $.each(response, function(index, value){ 
       results.push(value); 
      }); 

      console.log(results.length); 
     }); 
    }; 
    getIt(); 
}); 
0

因为$不用彷徨是异步的,results变量仍然是空当代码调用。看看我的意思,试试这个:

$(function(){ 
    var results = []; 
    var getIt = function(){ 
     $.get('results', function(response){ 
      $.each(response, function(index, value){ 
       results.push(value); 
      }); 

      getIt(); 
      console.log(results.length); 
     }); 
    }; 


});`