2010-07-24 11 views
1

난의 jQuery .post, 를 사용하는 내부 자바 스크립트 기능을하고 난 대체에 부울을 반환하고 싶었 :jQuery를 아약스 대체 반환

function is_available() { 
    $.post('ajax', { 
     action: 'mail' 
    }, function(data) { 
     if ($.trim(data) == 'NO_ERROR') { 
      return true; 
     } else { 
      return false; 
     } 
    }); 
} 

을하지만 기능은 undefinied 반환합니다. 어떻게 그 부울을 반환 할 수 있습니까?

function check_available() { 
    $.post('ajax', { 
    action: 'mail' 
    }, function(data) { 
    myNextFunction($.trim(data) == 'NO_ERROR'); 
    }); 
} 
function myNextFunction(isAvailable) { 
    //do something, this runs after the AJAX request completes the check 
} 

을 이렇게 처리하는 대신에 synchronosuly입니다 :

답변

1

는 현재까지 나중에 실행하지 않는이 그 return 문 때문에, 당신은 예를 들어, 콜백의 데이터에 의존하는 코드를 호출 할 필요가 return 문을 사용하고 코드 경로를 비동기로 처리하고 코드가 $.post()이라는 콜백의 "사용 가능"값을 필요로하는 모든 코드를 시작하면 서버 요청이 돌아 왔을 때 실행될 준비가되었습니다.

현재 콜백 함수가 (값을 사용하려는 후) 발생하기 때문에 undefined을 반환합니다.