aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2019-03-14 14:52:59 +0100
committerHakim El Hattab <hakim.elhattab@gmail.com>2019-03-14 14:52:59 +0100
commit6410ed15aa5ce2bdfc1f7f02c818a562ec8a1fc4 (patch)
tree2dfb0a67422aa196b9448c1e3c06338dfb20131f
parent5301a9ea03a2c5abe857105acbc224c532a8c0e8 (diff)
downloadfreenode-live-2017-presentation-6410ed15aa5ce2bdfc1f7f02c818a562ec8a1fc4.tar
freenode-live-2017-presentation-6410ed15aa5ce2bdfc1f7f02c818a562ec8a1fc4.tar.gz
support for plugins where the init method doesn't return a Promise
-rw-r--r--js/reveal.js29
-rw-r--r--plugin/highlight/highlight.js2
-rwxr-xr-xplugin/math/math.js2
-rw-r--r--plugin/notes/notes.js2
-rw-r--r--plugin/zoom-js/zoom.js2
5 files changed, 17 insertions, 20 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();
- }
-
}
/**
diff --git a/plugin/highlight/highlight.js b/plugin/highlight/highlight.js
index 6d6910b..b3599e8 100644
--- a/plugin/highlight/highlight.js
+++ b/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();
-
},
/**
diff --git a/plugin/math/math.js b/plugin/math/math.js
index b78d120..d76c9dd 100755
--- a/plugin/math/math.js
+++ b/plugin/math/math.js
@@ -84,8 +84,6 @@ var RevealMath = window.RevealMath || (function(){
} );
- return Promise.resolve();
-
}
}
diff --git a/plugin/notes/notes.js b/plugin/notes/notes.js
index 54dcf31..3d5eac4 100644
--- a/plugin/notes/notes.js
+++ b/plugin/notes/notes.js
@@ -168,8 +168,6 @@ var RevealNotes = (function() {
}
- return Promise.resolve();
-
},
open: openNotes
diff --git a/plugin/zoom-js/zoom.js b/plugin/zoom-js/zoom.js
index 031514d..92c3ba5 100644
--- a/plugin/zoom-js/zoom.js
+++ b/plugin/zoom-js/zoom.js
@@ -22,8 +22,6 @@ var RevealZoom = (function(){
}
} );
- return Promise.resolve();
-
}
}