2017-02-09 1 views
-1

이 코드를 콜백 함수를 사용하도록 변경하고 싶습니다. DynamicLoadScriptForEdit()을 호출 한 후 프로그램이 ExecuteScriptForEdit으로 전화를 걸길 원하지만이 코드는 작동하지 않습니다.자바 스크립트에서 콜백 함수를 사용하는 방법은 무엇입니까?

window.onload = function() { 
    DynamicLoadScriptForEdit('/temps/F.js', function(err) { 
    ExecuteScriptForEdit(); 
    }); //네트워크가 좋으면 상관없지만 안좋으면 동기화가 실패, 콜백으로 가야함 
} 

function DynamicLoad(source) { 
    var script = document.createElement('script'); 
    script.src = source; 
    script.onload = function() { 
     //do stuff with the script 
    }; 
    document.head.appendChild(script); 
} 

function DynamicLoadScriptForEdit(source, callback) { 
    DynamicLoad(source); 
    OnButton('ID_Button_Test'); 
} 

도와주세요. 고맙습니다.

+0

기능 DynamicLoad (소스) { \t VAR 스크립트 = document.createElement ('스크립트'); \t script.src = 소스; \t script.onload = function() { \t \t // 스크립트로 작업 수행 \t}}; \t document.head.appendChild (script); } 함수 DynamicLoadScriptForEdit (소스, 콜백) { \t DynamicLoad (source); \t OnButton ('ID_Button_Test'); } – Fortuneman

+0

@ Tushar 이것은 코드입니다. – Fortuneman

답변

3

이렇게하려면 스크립트의 onload 처리기에서 호출하기 전에 매개 변수의 DynamicLoadScriptForEdit()에 제공 한 함수를 하위 수준 함수에 전달하면됩니다. 이 시도 :

window.onload = function() { 
    DynamicLoadScriptForEdit('/temps/F.js', function(err) { 
     ExecuteScriptForEdit(); 
    }); 
} 

function DynamicLoadScriptForEdit(source, callback) { 
    DynamicLoad(source, callback); // provide callback function 
    OnButton('ID_Button_Test'); 
} 

function DynamicLoad(source, callback) { // receive callback function here 
    var script = document.createElement('script'); 
    script.src = source; 
    script.onload = function() { 
     // do stuff with the script 

     callback && callback(); // call here 
    }; 
    document.head.appendChild(script); 
} 
+0

나를 구하십시오. 나는 영어를 잘 못해서 미안해. 고맙습니다!! 너를 기억해. – Fortuneman

관련 문제