ProCoSys / Bifrost

Application Development Framework promoting good development practices such as CQRS and MVVM (see readme)
http://bifrost.dolittle.com
Other
1 stars 1 forks source link

assetsManager may initialize twice #38

Closed bnordli closed 8 years ago

bnordli commented 8 years ago

In certain circumstances, assetsManager may initialize twice, if 1) assetsManager.initalize is called. 2) assetsManager.initializeFromAssets is called. 3) Callback from the ajax request is run.

Suggested solution: Check for initialized scripts inside the ajax callback.

Relevant code

        initialize: function () {
            var promise = Bifrost.execution.Promise.create();
            if (typeof Bifrost.assetsManager.scripts === "undefined" ||
                Bifrost.assetsManager.scripts.length === 0) {

                $.get("/Bifrost/AssetsManager", { extension: "js" }, function (result) {
                    Bifrost.assetsManager.scripts = result;
                    Bifrost.namespaces.create().initialize();
                    promise.signal();
                }, "json");
            } else {
                promise.signal();
            }
            return promise;
        },
        initializeFromAssets: function(assets) {
            Bifrost.assetsManager.scripts = assets;
            Bifrost.namespaces.create().initialize();
        },