2014-03-06 3 views
0

범위 질문에 어려움을 겪고 있습니다.
기본적으로 jQuery의 API 요청을 작성 중입니다 $.getJSON() 그런 다음 결과를 사용하여 D3.js로 그래프를 그립니다.jQuery 요청과 d3.js 사이의 범위 문제

var url = 'http://query.yahooapis.com/v1/public/yql'; 
var startDate = '2013-09-06'; 
var endDate = '2014-03-06'; 
var req = encodeURIComponent('select * from yahoo.finance.historicaldata where symbol in ("YHOO") and startDate = "' + startDate + '" and endDate = "' + endDate + '"'); 

var dd = $.getJSON(url, 'q=' + req + "&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json", function(data) { 
    console.log(data); 
    console.log(data.query.results.quote[0]); 
}); 

console.log("lol"); //works fine 
console.log(data); //doesn't work 
console.log(dd);  //works 
console.log(dd.data);  //doesn't work 

매우 혼란 스럽습니다. d3.js에서 내 쿼리 결과를 어떻게 사용할 수 있습니까?

당신에게

답변

3

$.getJSON가 비동기 대단히 감사합니다. 즉, 코드를 실행하면 요청을 보냅니다. 그러면 그 아래의 코드가 실행됩니다. 아직 아무 것도 돌아 오지 않았습니다. 요청이 반환되면 처리기 함수가 데이터와 함께 호출됩니다. 여기에서 데이터로 수행하려는 모든 작업을 수행해야합니다. D3는 JSON를 입수 자신의 기능을 제공

$.getJSON(url, function(data) { 
    // make graph 
}); 

참고 :

d3.json(url, function(error, data) { 
    // make graph 
});