2014-01-05 2 views
0

주 후 하나를 실행합니다 없음 jQuery를만들기 JS 기능은 다른

내가 네 가지 기능을 가지고 있고 그들에게 또 다른 예를 하나씩 호출합니다. 이전에 호출 된 함수가 실행 된 후에 함수를 호출하십시오 (코어 js에서는 jquery가 아닙니다). 인터넷에서 검색을 시도했지만 만족스러운 답변을 찾을 수 없었습니다. 여기까지 내가 한 일이 있습니다 :

function func1() { 
    noAjaxCall.click(); 
    return true; 
} 

function func2() { 
    ajaxCall.click();   <--------- sending an ajax request 
    return true; 
} 

function func3() { 
    noAjaxCall.click(); 
    return true; 
} 

function func4() { 
    //anything here 
} 

if(func1()) 
    if(func2()) 
     if(func3()) 
      func4(); 

무슨 일이 일어나는가는 func3이 호출되지 않습니다. 왜 이런 일이 생기고 이것에 대한 해결 방법이 있습니까?

감사합니다.

+0

그냥 클릭을 트리거에서, 당신은 실제 함수를 호출하고 클릭을 유발의 약속을 대신 반환, 또는 당신이 그것을 해킹하고 있다면 글로벌 아약스 이벤트에 후크 수 있어야 기다릴 정도가 아니다 jQuery와 같은 라이브러리를 사용한다. – adeneo

+0

yeahm 나는 그것을 알아 차렸다. 여기서는 jQuery를 사용하지 않습니다! – Kevin

답변

1

나는 당신이 예상 한대로하지 않을 것이라고 확신합니다. AjaxCall은 func3이 호출 될 때 실제로 완료되지 않습니다. 원인은 ... 비동기입니다.

저는이 문제를 해결하기보다는 실제 해결책 (실제로 원하는 것을 찾으십시오)을 선호합니다.

달성하고자하는 진정한 목표는 무엇입니까?

편집

는 이제 ajaxCall 위해 '클릭'의 핸들을 imagime 보자. 나는 애플 리케이션에 jQuery가 없다는 것을 알고 있지만 내가 아는 것을 만들어 낸다.

function requester(){ 
    //do some asyn work 
    $.ajax({ //... 
     success: function() { 
      //HERE call the other functions 
     } 
    }); 
} 
+0

감사합니다. 내 게시물 – Kevin

+0

을 수정했습니다. 해결 방법은 원래 질문의 범위를 벗어납니다! 감사합니다 :) – Kevin

+0

나는 편집했는데 JS에서 비동기 콜백에 대해 읽어야한다. :) – farvilain