如何在javascript中使用回调函数?

时间:2017-02-09 11:29:37

标签: javascript jquery node.js express

我想更改此代码以使用回调函数。我希望程序在调用ExecuteScriptForEdit后调用DynamicLoadScriptForEdit(),但此代码不起作用。

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');
}

请帮帮我。谢谢。

1 个答案:

答案 0 :(得分:3)

为了实现这一点,您可以在DynamicLoadScriptForEdit()参数中将callback提供的函数传递给较低级别​​的函数,然后在脚本的onload处理程序中调用它。试试这个:

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);
}