Bladeren bron

support for plugins where the init method doesn't return a Promise

Hakim El Hattab 5 jaren geleden
bovenliggende
commit
6410ed15aa
5 gewijzigde bestanden met toevoegingen van 17 en 20 verwijderingen
  1. 17 12
      js/reveal.js
  2. 0 2
      plugin/highlight/highlight.js
  3. 0 2
      plugin/math/math.js
  4. 0 2
      plugin/notes/notes.js
  5. 0 2
      plugin/zoom-js/zoom.js

+ 17 - 12
js/reveal.js

@@ -539,29 +539,34 @@
 
 		var pluginsToInitialize = Object.keys( plugins ).length;
 
+		var afterPlugInitialized = function() {
+			if( --pluginsToInitialize === 0 ) {
+				loadAsyncDependencies();
+			}
+		};
+
 		for( var i in plugins ) {
 
 			var plugin = plugins[i];
 
-			// If the plugin has an 'init' method, initialize and
-			// wait for the callback
+			// If the plugin has an 'init' method, invoke it
 			if( typeof plugin.init === 'function' ) {
-				plugin.init().then( function() {
-					if( --pluginsToInitialize === 0 ) {
-						loadAsyncDependencies();
-					}
-				} );
+				var callback = plugin.init();
+
+				// If the plugin returned a Promise, wait for it
+				if( callback && typeof callback.then === 'function' ) {
+					callback.then( afterPlugInitialized );
+				}
+				else {
+					afterPlugInitialized();
+				}
 			}
 			else {
-				pluginsToInitialize -= 1;
+				afterPlugInitialized();
 			}
 
 		}
 
-		if( pluginsToInitialize === 0 ) {
-			loadAsyncDependencies();
-		}
-
 	}
 
 	/**

+ 0 - 2
plugin/highlight/highlight.js

@@ -97,8 +97,6 @@ c:[{cN:"comment",b:/\(\*/,e:/\*\)/},e.ASM,e.QSM,e.CNM,{b:/\{/,e:/\}/,i:/:/}]}});
 				}
 			} );
 
-			return Promise.resolve();
-
 		},
 
 		/**

+ 0 - 2
plugin/math/math.js

@@ -84,8 +84,6 @@ var RevealMath = window.RevealMath || (function(){
 
 			} );
 
-			return Promise.resolve();
-
 		}
 	}
 

+ 0 - 2
plugin/notes/notes.js

@@ -168,8 +168,6 @@ var RevealNotes = (function() {
 
 			}
 
-			return Promise.resolve();
-
 		},
 
 		open: openNotes

+ 0 - 2
plugin/zoom-js/zoom.js

@@ -22,8 +22,6 @@ var RevealZoom = (function(){
 				}
 			} );
 
-			return Promise.resolve();
-
 		}
 	}