AJAX 함수에서 변수가 반환되지 않음
프레임워크를 여러 파일로 분할할 때 변수가 반환되지 않는 문제가 발생할 수 있습니다. AJAX 함수에서. JS 파일 내에서는 변수가 비어 있지 않지만 기본 실행에서는 비어 있는 것으로 나타납니다.
원래 함수 패턴:
var lock_get = 0; function get_data(data, destination) { if (lock_get == 0) { lock_get = 1; $.ajax({ type: "POST", url: destination, async: true, data: data, success: function(data) { lock_get = 0; if (data) { return data; } } }); } };
실행:
var test = get_data(data, destination); notice(test);
원래 접근 방식에서는 get_data 함수가 결과를 반환하려고 시도합니다. AJAX 호출을 시도했지만 AJAX의 비동기 특성으로 인해 실패했습니다.
해결책: 콜백 사용
이 문제를 해결하려면 콜백을 활용할 수 있습니다. get_data에 콜백 함수를 전달하면 결과를 처리하고 반환할 수 있습니다.
function get_data(data, destination, callback) { if (lock_get == 0) { lock_get = 1; $.ajax({ type: "POST", url: destination, async: true, data: data, success: function(data) { lock_get = 0; if (data && callback) { callback(data); } } }); } };
실행(콜백 사용):
get_data(data, destination, function(test) { notice(test); });
위 내용은 내 AJAX 함수가 변수를 반환하지 않는 이유는 무엇이며 콜백을 사용하여 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!