diff --git a/src/ocLazyLoad.core.js b/src/ocLazyLoad.core.js index 5c9ac9f..914f3e9 100644 --- a/src/ocLazyLoad.core.js +++ b/src/ocLazyLoad.core.js @@ -24,7 +24,8 @@ }, debug = false, events = false, - moduleCache = []; + moduleCache = [], + modulePromises = {}; moduleCache.push = function(value) { if(this.indexOf(value) === -1) { @@ -572,6 +573,7 @@ var res = modulesToLoad.slice(); // clean copy var loadNext = function loadNext(moduleName) { moduleCache.push(moduleName); + modulePromises[moduleName] = deferred.promise; self._loadDependencies(moduleName, localParams).then(function success() { try { justLoaded = []; @@ -594,6 +596,8 @@ // load the first in list loadNext(modulesToLoad.shift()); + } else if (localParams && localParams.name && modulePromises[localParams.name]) { + return modulePromises[localParams.name]; } else { deferred.resolve(); }