aboutsummaryrefslogtreecommitdiff
path: root/js/reveal.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/reveal.js')
-rw-r--r--js/reveal.js29
1 files changed, 17 insertions, 12 deletions
diff --git a/js/reveal.js b/js/reveal.js
index 1ef10aa..51b1ed0 100644
--- a/js/reveal.js
+++ b/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();
- }
-
}
/**