2012-02-24 2 views
0

jsonp 요청의 결과로 변수를 만들고이 변수를 스크립트에서 나중에 사용하려고합니다. 그러나 변수가 사용되는 부분이 jsonp 요청이 완료되기 전에 트리거되는 것처럼 보입니다.jsonp 요청 전에 var를 읽으려고 시도합니다.

나는 이것이 어떻게 행해질 수 있었는지 알아 내려고 노력했다. jsonp 요청을 함수에 넣고 다음과 같이하려고했습니다 : var slides = jsonpResult();

실마리 무엇을해야합니까?

편집 : 나는 또한 갤러리 변수

gallery.onFlip(function() { 
//Doing stuff 
} 

를 사용하여 기능을 가지고 그리고 난으로 onSuccess 함수에서이 모든 것을 넣을 수 없습니다.

+1

글쎄, 당신이 * 할 수없는 것은 액세스하려는 결과입니다. 대신'result' 변수에 의존하는 모든 코드는'success' 콜백 안에 있어야합니다. –

+0

좋은 제안이지만 갤러리 var에 따라 나중에 호출 할 함수가 있습니다. 내 질문에 더 많은 정보를 추가했습니다. – Spoeken

+0

'async : false'를 사용하지 않고서는 그것을 수행하는 다른 방법은'jqXHR' 객체를 저장하고 나중에 반환 된 데이터가 필요한 코드를 실행해야 할 때 이벤트를 바인드 (bind)하는 것입니다. . –

답변

1

두 가지 방법이 있습니다.

나 :

이 성공 콜백 내부에서 slides 변수를 사용하는 어떤 코드를 호출 (및 향후 사용을 위해 그것을 필요로하는 경우뿐만 아니라, 거기에 할당을) 않습니다.

+0

어쨌든 이것은 갑자기 효과가있었습니다. 그렇게 할 수 있기를 바랍니다. – Spoeken

3

onSuccess에 바인딩하십시오. onSuccess가 발생할 때까지 사용하는 함수를 호출하지 마십시오. 또한 요청을 동기식으로 할 수도 있습니다 (아약스가 실행될 때까지 코드는 실행되지 않습니다).하지만하지 말 것을 강력히 권장합니다. (이 방법이 사용되지 않습니다주의하시기 바랍니다)

이 아약스 통화 옵션에서 async: true을 설정하여 AJAX 호출하지 A (동기)를 확인하십시오

+0

나는 그것을 시도했다, 그러나 성공이 끝내기 위하여 그것을 성가 시게하지 않는 기능을 방아쇠를 당기기 때문에 보인다. – Spoeken

관련 문제