2011-01-10 3 views
3

JQuery $ .get 요청의 결과를 기반으로 함수의 반환 값을 확인하려고합니다 :

 function checkResults(value) { 
     $.get("checkDuplicates.php", { 
      value: value 
     }, function(data) { 
      if(data == "0") { 
      //I want the "checkResults" function to return true if this is true 
      } else { 
      //I want the "checkResults" function to return false otherwise 
      } 
     }); 
    } 

이 작업을 수행하는 쉬운 방법이 있습니까?

답변

6

이렇게하면 안됩니다. 다른 모든 ajax 메서드와 마찬가지로 .get()은 비동기 적으로 실행됩니다 (명시 적으로 동기식으로 실행되도록 설정하지 않는 한 매우 권장하지 않음). 따라서 콜백을 전달하는 것이 가장 좋습니다.

function checkResults(value, callback) { 
    $.get("checkDuplicates.php", { 
     value: value 
    }, function(data) { 
     if(data == "0") { 
     if(typeof callback === 'function') 
      callback.apply(this, [data]); 
     } else { 
     //I want the "checkResults" function to return false otherwise 
     } 
    } 
} 

checkResults(55, function(data) { 
    // do something 
}); 
3

아니요, 요청이 완료되면 실행될 콜백을 제공해야합니다. 반환 값을 콜백에 전달할 수 있습니다. 콜백은 결과에 따라 작동해야합니다.

관련 문제