我目前被困在使用必须以非常特定的顺序加载的几个 JavaScript 库。由于 jQuery 的 getScript() 是异步的,它开始非常快速地下载所有脚本,并在它们完成时执行它们。由于它们没有按顺序执行,因此我从库中收到了多个错误。
不幸的是,我无法更改或修改这些库中的任何一个。我正在尝试做的是使用一种下载 JavaScript 库的方法,并在回调中让它自己调用,直到它完成加载所有库。
这适用于第一个文件。当第二个文件出现时,它会在回调中丢失上下文,我不能再调用我的递归方法了。
有任何想法吗?
代码的配对版本:
function loadFiles (CompletedCallback) {
var Files = getFiles(); // This is an array of js files to load
var currentFileIndex = 0;
function processFile (file) {
$.getScript(file[currentFileIndex], $.proxy(function () {
++currentFileIndex;
if (currentFileIndex === Files.length) {
CompletedCallback();
} else {
processFile(Files[currentFileIndex]);
}
}, this);
};
processFile(Files[currentFileIndex]);
};