이 코드에서 봐 주시기 바랍니다 :
$(document).ready(function() {
var urls = ['http://en.wikipedia.org/w/api.php?action=query&titles=File:Einstein2.jpg&prop=imageinfo&iiprop=url&iiurlwidth=144&format=json&callback=?', 'http://en.wikipedia.org/w/api.php?action=query&titles=File:Da_Vinci_Vitruve_Luc_Viatour.jpg&prop=imageinfo&iiprop=url&iiurlwidth=144&format=json&callback=?', 'http://en.wikipedia.org/w/api.php?action=query&titles=File:2003-32-GravitationalLens.jpg&prop=imageinfo&iiprop=url&iiurlwidth=144&format=json&callback=?'];
var x = 0;
var f = function() {
x++;
console.log(x);
};
$.getJSON(urls[0], function(json) { f(); });
$.getJSON(urls[1], function(json) { f(); });
$.getJSON(urls[2], function(json) { f(); });
});
이 코드의 결과는 "1", 나는 "1 2 3"을 기대하면서.
이에 대한 해결책을 보았습니다 (예 : this SO question). 하지만 여전히 주어진 솔루션이 작동해야하는 이유와 위의 코드가 왜 안되는지 이해할 수 없습니다.
ADDED : 나는 $ .getJSON 사이에 몇 가지 코드를 넣어 호출 또는 변경을 console.log()가 (경고)는, 출력은 정말 "1 2 3"입니다. 이 메소드를 정확히 서로 호출하면 Chrome 출력이 '1'이됩니다.
추가 : 이상한 것. 코드를 전혀 바꾸지 않고 페이지를 다시 불러 와서 "1", "1 2", "1 2 3"을 출력했습니다 ...
같은 쿼리를 시도 할 수 있습니다? 어떤 결과가 있습니까? "제대로 작동"을 정의하십시오. – Quentin
알아 차 렸습니다. 질문을 편집했습니다. – Sergey
해당 코드를 실행 한 결과 *는 * 1 2 3 - http://jsfiddle.net/njxR7/입니다. 테스트 케이스가 줄어들어 문제가 없어지는 것 같습니다. – Quentin