我正在使用模块为我的应用程序创建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完成之前如何延迟执行客户端调用。
提前致谢!