如何延迟执行被调用函数?

时间:2014-09-22 19:35:47

标签: javascript function api execution

我正在使用模块为我的应用程序创建API。我将每个模块放在一个相应的.js文件中,之后我将这些.js推到页面头部:

App.loadModule = function (src) {
  var script = document.createElement('script');
  var appendTo = document.getElementsByTagName('head')[0];

  script.src = App.prefs.domain + '/js/mods/' + src + '.js';
  appendTo.appendChild(script);
};

App.printLoadedModule = function (name) {
  console.log(name + '.js');
};

App.moduleLoader = (function () {
  var modules = App.modulesToLoad;
  for (var i = 0, len = modules.length; i < len; i++) {
    App.loadModule(modules[i], App.init);
  }
})();

之后,客户端可以调用位于这些模块中的API函数。因此,只有在所有脚本出现在头部之后才能执行这些调用。

我有:

 App.init = function() {
   if (App.isFunc(callback)) {
     callback();
   }
 };

客户端像这样调用API:

App.init(function () {
    App.api('user.get', {user_ids: '1'}, function (data) {
        console.log(data);
    });
});

问题是我不明白在App.moduleLoader完成之前如何延迟执行客户端调用。

提前致谢!

0 个答案:

没有答案