Моя компания переходит от классического синтаксиса Dojo к AMD. У нас есть несколько ситуаций, когда нам нужно динамически загружать модули синхронно.Доджо требует синхронного единственного аргумента?
Требование в додзё, похоже, официально не поддерживает синхронную загрузку (по крайней мере, это не документировано нигде), но, похоже, это работает, если вы не передадите функцию a в качестве второго аргумента (в 1.7.2 по крайней мере).
require(["path/to/my/Module"]);
Я добавил дополнительную задержку в Fiddler, и это определенно загружается, прежде чем переходить на следующую строку.
Кто-нибудь знает, можно ли на это положиться? Я не особо хочу заманить кодовую базу этим, если это просто похмелье из классического стиля, который будет удален в версии 2.0.
От взгляда на API AMD Я думаю, что это может быть ошибкой на стороне Додзе. Синтаксис Я использую не требуется (строка) или требуют (массив, функция) это требуется (массив) модуль определенно не был загружен еще потому, что я звоню его в блоке где я специально не требую его заранее. Он загружается синхронно, потому что я использовал fiddler для увеличения латентности вызова в течение 2000 мс, и он ждал его загрузки. –
Я попытался воспроизвести это, но не смог сделать это (используя оба v1.9 и v.1.7.2). Я использовал формат массива (без обратного вызова), как вы это делали, но он по-прежнему загружается асинхронно. Возможно, вы используете разные настройки? У меня есть {cacheBust: true, async: true} - пробовали с локальным Dojo и с помощью Google CDN. Даже если он работает синхронно, я бы предположил, что это будет в будущем и случайном переключении времени на асинхронное - т.е. вероятно, использует неизвестный недостаток в загрузчике. Я не эксперт по загрузчику Dojo, поэтому я не могу точно сказать, правильно это или нет. –