Использует ли jQuery.ajax({async: false})
все еще объект XMLHttpRequest?
Если да, то как синхронный запрос?
Есть ли какой-то механизм внутри определения функции, позволяющий выполнить асинхронный запросXHR, чтобы быть обернутым в синхронную оболочку?
Я спрашиваю, потому что я хочу обернуть асинхронные вызовы функций в синхронную оболочку.1013 * Я хочу сделать это для зависимостей.Мне не нужно больше ничего запускать до тех пор, пока не загрузятся все сценарии внешней зависимости, однако я бы предпочел не загружать каждый из файлов синхронно.
По сути, я хочу это:
require(['lib1.js','lib2.js'])
Library1Function();
Library2Function();
Загружать lib1 и lib2 одновременно, но блокировать до тех пор, пока не загрузятся оба.
Я знаю, что мог бы сделать это с помощью обратного вызова, однако это не работает, если файлы, которые я включаю, также имеют зависимостивключается таким же образом.
EDITx2
Причина, по которой обратные вызовы не работают:
# lib2.js
window.Library2Function = function(input) {
alert(input);
}
# lib1.js
require('lib2.js', function() {
window.Library1Function = function() {
window.Library2Function('Hi there');
}
});
# main.js
require('lib1.js', function() {
window.Library1Function();
});
Проблема в том, что в main.js, этот обратный вызов будет отправлен после загрузки и запуска lib1.js.Проблема в том, что Library2Function
фактически не определено до загрузки lib2.js, что происходит после анализа lib1.js.