0
범위 밖에있는 변수에서 작업하려면 jQuery 콜백이 필요한 상황이 있습니다. 내가 NUM은 콜백 함수 내에서 사용할 수 있도록하고 싶습니다jQuery 콜백에서 바깥 쪽 범위에 액세스하기
$('#myBtn').on('click', function(e) {
var num = 1;
// assume this returns the following:
// { success : true, num : 1 }
$.getJSON('/api/get_number', {}, function(response) {
if (response.success) {
// here, num is unknown unless I define it as a
// global variable
num += response.num ;
}
});
console.log(num); // => want 2, get 1
});
: 간단하게하기 위해, 다음 코드를 가정합니다. 전역 변수 (onclick 함수 밖에서 num을 선언 함)를 선언하지 않고이 작업을 수행하는 좋은 방법은 무엇입니까? 인수를 서버에서 전송하지 않고 인수로 전달할 수 있습니까? 감사.
'num'이 성공적으로 업데이트되었지만 ** 이후 **는'console.log (num)'을 호출합니다. 문제는 범위에 관한 것이 아니라 Ajax는 ** 비동기 **입니다. 콜백 내에서'console.log (num)'을 움직이면 볼 수 있습니다. 이미 많은 관련 질문들이 많이 있습니다. –