Пишу встраиваемое приложение, что-то типа огромного jQuery плагина. "Главный" модуль должен запросить другой модуль, в котором, в свою очередь, загружаются остальные модули. Он (главный модуль) должен создавать глобальную функцию. Проблема в том, что эта функция создается с задержкой из-за того, что модули асинхронны.
main.js:define( 'main', [ 'blah' ], function( Blah ) {
window.Blah = Blah;
});
require( ['main'] );
Далее, в другом файле вызываем:
new Blah(); // Blah is not defined
Оптимизатор должен выдавать один JS файл, который должен немедленно создать переменную.
<script src="blah-built.js"></script>
<script>new Blah(); // Blah is not defined </script>
Сейчас приходится извращатьс вот так:
main.js:( function() {
window.Blah = function() {
var _this = this;
require([ 'blah' ], function( _Blah ) {
_this.me = new _Blah();
});
};
})();
Как решить эту проблему? Хочется иметь нормальный конструктор сразу после загрузки.