2011-02-15 4 views
0

이 이상한 문제가 있습니다. 내 코드에서, 나는 val1이라는 변수를 가지고있다.이 변수는 jQuery 호출 후에 값을 얻지 만, jQuery 함수를 빠져 나오면 값이 손실된다. 나는 undefined를 얻을 - 내가 필요한 값을 얻을 수 있지만, 두 번째 경고에Javascript - 함수 출구에서 값이 손실 됨

var val1; 
$.getJSON('some address', null, function (result) { 
    val1 = result.names[0].name; 
    alert(val1); //first alert 
}); 
alert(val1); // second alert 

첫 번째 경고에 :

여기에 코드입니다.

왜?

+0

가능한 [Jquery 반환 값] (http://stackoverflow.com/questions/2438685/jquery-return-value) 및 [만 사람] (http://stackoverflow.com/search?q=jquery)의 중복 + ajax + return + value). – meagar

+0

@meagar : 어떻게 이것이 http://stackoverflow.com/questions/2438685/jquery-return-value의 속임수입니까? – balpha

+0

이것은 중복되지 않습니다. 나는 물건을 얻지 못한다. 그러나 나는 var의 가치를 잃는다. – Roman

답변

6

두 번째 alert은 값이 설정되기 전에 실행됩니다. 또는 그 반대로 : 콜백은 두 번째 alert 이후에 실행됩니다.

Ajax 호출은 비동기식입니다.

+0

어 .. 재미있는 것. 어떻게 든 극복 할 수 있습니까? – Roman

+0

@roman : Ajax 요청을 동기식으로 만들 수는 있지만 강력히 권고한다. Ajax imo의 모든 이점을 잃어 버렸습니다. 콜백 내에서 반환 값을 처리해야하는 모든 것을 추가하십시오. –

+0

고맙습니다. 그것은 문제를 해결하는 것 :) – Roman

관련 문제