2014-01-14 2 views
0

함수를 비동기 함수에 포함 할 수 있지만 비동기 호출이 해결 될 때 첫 번째 반환해야합니다. 나는 사용하려고 시도하고있다반환 JQuery. 지연된 해결 된

return JQuery.when()  

다음 기능은 이력서이다.

function getData(x){ 
if (x = 1){ 
    return JQuery.when(asynFunction().then(function (data){ 
     (...); 
     return; 
    }); 
} 
else { 
    (...) 
    return; 
} 

} 

목적은 비동기 호출이 완료 될 때까지 getData()가 리턴하지 않는다는 것입니다. 아이디어가 있으십니까?

시간 내 주셔서 감사합니다. 이 함수가 모두 약속을 반환하도록 주선 (절대적으로 필요 아니지만) 종종 더 나은 그러나

function getData(x) { 
    if (x = 1) { 
     return asynFunction(); 
    } 
    else { 
     var myValue = 'whatever'; 
     return myValue; 
    } 
} 

:

+0

아마도 함수 안에 jQuery.when 메서드를 래핑 할 수 있습니까? return function() {jQuery.when (...)} – abidibo

답변

1

asynFunction() 반환 약속, getData, 그 간단한에서, 다음과 같을 수 가정 상황. 이렇게하면 getData()이 호출 될 때마다 동 기적으로 파생 되더라도 결과는 비동기 방식 (궁극적으로 .then 또는 .done())으로 처리 될 수 있습니다.

function getData(x) { 
    if (x = 1) { 
     return asynFunction(); 
    } 
    else { 
     ... 
     var myValue = 'whatever'; 
     return jQuery.when(myValue); 
    } 
} 
관련 문제