>웹 프론트엔드 >JS 튜토리얼 >내 AJAX 함수가 변수를 반환하지 않는 이유는 무엇이며 콜백을 사용하여 어떻게 해결할 수 있습니까?

내 AJAX 함수가 변수를 반환하지 않는 이유는 무엇이며 콜백을 사용하여 어떻게 해결할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-08 20:17:17197검색

Why Doesn't My AJAX Function Return a Variable, and How Can I Fix It Using Callbacks?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.