0
다음 코드는 json 파일을로드하고 questions라는 배열을 만듭니다.
getArray 함수 내에서 console.log (JSON.stringify (questions))를 수행하면 문제가 없지만 동일한 outsite 함수가 작동하지 않으면 시도한 결과
alert (JSON.stringify 질문)), 경고 (questions.length) [0]을 반환하고, 내 실수는 어디입니까 ?? 이 asynchoronous 때문에내 배열 json이 비어있는 이유는 무엇입니까?
var questions = [];
function getArray(){
$.getJSON('questions.json', function (json) {
for (var key in json) {
if (json.hasOwnProperty(key)) {
var item = json[key];
questions.push({
Category: item.Category
});
}
}
//console.log(JSON.stringify(questions)); //it works
return questions;
});
}
$(document).ready(function(){
getArray();
});
alert(JSON.stringify(questions)) //return []
alert(questions.length) //return 0
http://stackoverflow.com/questions/14916940/how -to-get-array-json-of-json-file). 'alert()'는 동기적이고 다른 것들보다 먼저 실행됩니다. 왜냐하면 나머지는 비동기적이고 이벤트 구동이기 때문입니다. 코드가 특정 순서로 작성 되었기 때문에 동일한 순서로, 특히 이벤트로 작업 할 때 코드가 실행되는 것을 보장하지 않습니다. –
이것은 하루에 5 번 물었습니다 ... AJAX는 비동기식입니다. – charlietfl