2014-09-25 5 views
0

Я пытаюсь запихать в мой массив повтор композиций данные АЯКС JSON, но переменная данных за пределами $.getJSON("/admin/reports/stats/1", function(datas) {}); пустзаполненный массив пуст вне функции

var data = []; 
$.getJSON("/admin/reports/stats/1", function(datas) { 
    $(datas).each(function(index, value){ 
     obj={}; 
     obj['label']= value.publisher_name; 
     obj['data']= value.sale; 
     data.push(obj); 
    }); 
    console.log(data); //here I see the content of array  
}); 

console.log(data); //here is empty 
+1

Вы найдете ответ И объяснение [здесь] (http://tech.pro/blog/1402/five-patterns-to-help-you-tame-asynchronous-javascript). –

+0

используйте .done() и выполняйте операцию там, на ваших данных. – maddy

ответ

1

getJSON является асинхронным, так это:

console.log(data); //here is empty 

фактически выполняется до загрузки JSON.

Смежные вопросы