Я сейчас застрял в использовании нескольких библиотек JavaScript, которые ДОЛЖНЫ загружаться в очень определенном порядке. Поскольку getScript () jQuery является асинхронным, он очень быстро начинает загрузку всех скриптов и, по мере их завершения, выполняет их. Поскольку они не выполняются по порядку, я получаю несколько ошибок, исходящих от библиотек.
К сожалению, я не могу изменить или модифицировать ни одну из этих библиотек. Я пытаюсь использовать метод, который загружает библиотеку 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]);
};