在 window.onload 中使用回调

Using callbacks in window.onload

我认为对此有一个简单的解决方案,但由于某种原因我没有得到预期的结果。我的函数如下所示:

var functionA = function(callback) {
    loadData(fromURL1); // takes some time
    loadData(fromURL2); // takes some time
    callback();         // Should be called AFTER the loadData() functions are finished
}

var myCallBackFunction = function() {
  // this function is called AFTER functionA() is finished
  alert("All my loaded data from URL1 and URL2");
}

window.onload = function() {
   functionA(myCallBackFunction);
}

不幸的是,上面的 callback() 函数没有等待 loadData() 完成,然后只调用空数据的警报。

我阅读了很多在线示例,但我认为我仍然遗漏了一些明显的东西。

如果 loadData() 是异步操作,你可以做两件事:

使用$.ajaxComplete()

var functionA = function(callback) {
    loadData(fromURL1); // takes some time
    loadData(fromURL2); // takes some time
    $.ajaxComplete(function () {
        callback();         // Should be called AFTER the loadData() functions are finished
    });
}

或链接函数:

var functionA = function(callback) {
    loadData(fromURL1, function () {
       loadData(fromURL2, function () {
           callback();         // Should be called AFTER the loadData() functions are finished
       }); // takes some time
    }); // takes some time
}