>웹 프론트엔드 >JS 튜토리얼 >비동기 AJAX 호출 반환 값을 어떻게 처리할 수 있나요?

비동기 AJAX 호출 반환 값을 어떻게 처리할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-11-27 07:24:11321검색

How Can I Handle Asynchronous AJAX Call Return Values?

비동기 AJAX 호출 및 변수 반환

AJAX 호출과 같은 비동기 프로그래밍에서는 호출 자체가 호출되므로 함수에서 반환되는 변수를 즉시 사용할 수 없습니다. 즉시 실행되지 않았습니다. AJAX 호출의 경우 호출은 비동기적으로 이루어집니다. 즉, 나머지 코드가 계속 실행되는 동안 백그라운드에서 실행됩니다.

현재 직면한 문제는 제공된 코드의 get_data 함수가 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 함수는 이제 AJAX 호출이 완료된 후 실행되는 함수인 추가 매개변수인 callback을 허용합니다.
  • 성공 내부 콜백의 경우 AJAX 호출 결과를 인수로 사용하여 콜백 함수가 호출됩니다.

콜백으로 get_data 함수를 호출하려면:

get_data(data, destination, function(test) {
  notice(test);
});

이 예에서는 익명 콜백 함수는 AJAX 호출 결과를 처리하는 데 사용됩니다. 호출 결과는 알림 함수로 전달됩니다.

콜백을 사용하면 get_data 함수는 AJAX 호출을 시작하고 즉시 반환할 수 있으며, 콜백 함수는 나중에 결과가 나올 때 실행됩니다.

위 내용은 비동기 AJAX 호출 반환 값을 어떻게 처리할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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