2016-10-25 6 views
2

Я хочу передать данные с помощью переменной json. В приведенном ниже примере json извлекается из внешнего файла JSON. может ли один помочь мне, как передать данные из локальной переменной, как я новичок в dc.jsqueue.js передает данные из локальной переменной не из внешнего файла

queue() 
    .defer(d3.json, "sampledata.json") // sampledata.json is an external json file 
    .await(makeGraphs); 

function makeGraphs() { 
    //function which proceses the data 
} 

я попробовал этот

var sampledata = [ ....]; 
queue().defer(d3.json, "sampledata.json") // sampledata.json is an external json file 
     .await(makeGraphs); 

    function makeGraphs() { 
     //function which proceses the data 
    } 

, но не работает.

ответ

2

Если у вас есть локальная переменная, не имеет смысла использовать асинхронный вызов , чтобы передать его. Просто передать его сразу в качестве аргумента:

var sampleData = [...];//this is your data 

makeGraphs(sampleData);//call your function using it as an argument 

А потом:

function makeGraphs(data){//this is the parameter 
    //use 'data' here 
} 
+0

Спасибо большое .... за вашу помощь .... Вы можете объяснить простыми словами, что делает queue.js действительно? – Rakesh

+0

В JavaScript, когда вы загружаете внешний файл (например, JSON), код, который появляется после него, не дождался загрузки файла, он запускается немедленно. Итак, мы должны поместить код, который имеет дело с файлом в функции обратного вызова. 'd3.queue' имеет некоторые инструменты для работы с таким асинхронным кодом. Поскольку у вас есть переменная, вам это не нужно. –

+0

да, но .... я считаю, что обратные вызовы предназначены для этой цели только для того, чтобы выполнить код после загрузки данных, это правильно? ... да ... тогда в чем же нуждаются queue.js .. .. просто спрашивая любопытство и, пожалуйста, исправьте меня, если я ошибаюсь, поскольку я новый bie ... – Rakesh

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