如何确保 Dojo 模块按特定顺序执行

How to ensure that Dojo modules execute in a certain order?

本文关键字:模块 定顺序 执行 Dojo 何确保 确保      更新时间:2023-09-26

所以我使用 Dojo 1.7 'require' 语法来触发两个模块。但是,调用这些模块的顺序很重要,因为一个模块处理另一个模块的结果。

我不能只是按程序布置它们...如何确保它们按顺序开火?

require(['modules/createElements', 'dojo/domReady!'], 
    function(createElements) {
        createElements.go();
});
require(['modules/modifyElements', 'dojo/domReady!'], 
    function(modifyElements) {
        // This is supposed to modify the elements created
        // by the createElements module, but it usually fires
        // _before_ the elements have been created!
        modifyElements.go();
});

理想情况下,我希望这两个模块或多或少彼此独立(例如,以便modifyElements可以对任何来源创建的元素进行操作),因此在createElements结束时调用modifyElements是不可取的。

啊哈,发布此内容后我意识到我可以在一个require内完成所有工作,如下所示:

require(['modules/createElements', 'modules/modifyElements', 'dojo/domReady!'],
    function(createElements, modifyElements) {
        createElements.go();
        modifyElements.go();
});