From c09b54924e903d232f17b2f325f993f6092bf746 Mon Sep 17 00:00:00 2001 From: Erik Ziegler Date: Thu, 9 Aug 2018 19:00:29 +0200 Subject: [PATCH] fix(plugins): Fix timing issues with loadScript --- .../client/lib/classes/plugins/OHIFPlugin.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Packages/ohif-viewerbase/client/lib/classes/plugins/OHIFPlugin.js b/Packages/ohif-viewerbase/client/lib/classes/plugins/OHIFPlugin.js index 7ae83a2e2..a81cac3f2 100644 --- a/Packages/ohif-viewerbase/client/lib/classes/plugins/OHIFPlugin.js +++ b/Packages/ohif-viewerbase/client/lib/classes/plugins/OHIFPlugin.js @@ -9,18 +9,21 @@ export class OHIFPlugin { // load an individual script URL static loadScript(scriptURL, type = "text/javascript") { return new Promise((resolve, reject) => { + const head = document.getElementsByTagName("head")[0]; const script = document.createElement("script"); - script.onload = resolve; + script.onload = () => { + head.removeChild(script); + resolve(); + }; + script.onerror = reject; script.src = scriptURL; script.type = type; script.async = false; - const head = document.getElementsByTagName("head")[0]; head.appendChild(script); - head.removeChild(script); }); } @@ -48,11 +51,16 @@ export class OHIFPlugin { const type = plugin.module === true ? 'module' : 'text/javascript' - this.loadScript(scriptURL, type).then(function() { + console.warn(`Calling loadScript for ${plugin.name}`); + console.time(`loadScript ${plugin.name}`); + this.loadScript(scriptURL, type).then((script) => { + console.timeEnd(`loadScript ${plugin.name}`); const entryPointFunction = OHIF.plugins.entryPoints[plugin.name]; if (entryPointFunction) { entryPointFunction(); + } else { + throw new Error(`No entry point found for ${plugin.name}`); } }, error => { throw new Error(error);