Итак, у меня есть несколько файлов javascript, которые я хочу запустить в определенном порядке, и вместо того, чтобы делать теги скриптов на странице html, я бы хотел использовать requirejs, чтобы я может модулировать код. Прежде чем я начал модульную работу с блоками define и начал рефакторинг кода, я хотел просто настроить порядок зависимостей. Поэтому у меня есть файлы, как этотRequirejs: зависимости не работают
index.html
<script src="scripts/depends/require.js"></script>
<script>
(function(){
require(['scripts/main.js', function(){}]);
}());
</script>
main.js
require(['scripts/services/fileLoader.js', 'scripts/services/Options.js'], function(){
// do stuff
});
fileLoader.js
require([
'scripts/services/alert.js',
'scripts/services/game.js',
'scripts/services/parser.js',
'scripts/services/options.js'
], function() {
// do stuff
});
Теперь это довольно очевидно, что я хочу здесь. Я хочу, чтобы main вызывал fileLoader.js, а затем я хотел бы, чтобы fileLoader.js вызывал каждую из своих зависимостей, прежде чем он вызывает обратный вызов. Затем, когда fileLoader.js завершил свой обратный вызов, я хотел бы, чтобы main завершил свои зависимости аналогично, прежде чем, наконец, вызвать его обратный вызов в последний раз, что и требовалось сделать.
Однако вот что происходит. Требуются основные вызовы, и я вижу, что загружаются файлы fileLoader.js и options.js. Но перед тем, как вызывается любая из зависимостей, требуемых fileLoader (а также ее собственный обратный вызов, который должен быть запущен для правильной работы основного), вызывается обратный вызов main.js. Что происходит?
tl; dr - главный обратный вызов, вызываемый перед обратным вызовом зависимого, почему?
Прохладный, что сделал. Быстрый вопрос, если важно, чтобы forceceDefine был true, тогда почему это не поведение по умолчанию? – FatalCatharsis
@FatalCatharsis По-моему, значение по умолчанию должно быть «true». Однако могут быть исторические причины, по которым значение по умолчанию - «false». Возможно, автор RequireJS не хотел нарушать какое-либо поведение, от которого зависели пользователи RequireJS. Вот почему я сказал, что всегда использую его, если вы не можете ссылаться на основную причину. Возможно, есть причины. Я, конечно, не встречал их. – Louis