Browse Source

fix for FF/Safari

Gregg Tavares 6 years ago
parent
commit
573797e87d
1 changed files with 13 additions and 17 deletions
  1. 13 17
      threejs/lessons/resources/threejs-post-processing-3dlut.js

+ 13 - 17
threejs/lessons/resources/threejs-post-processing-3dlut.js

@@ -3,27 +3,23 @@
 /* global */
 
 {
-  function makeWaiter() {
-    let resolve;
-    const promise = new Promise((_resolve) => {
-      resolve = _resolve;
-    });
-    return {
-      promise,
-      resolve,
-    };
-  }
+    class Waiter {
+      constructor() {
+        this.promise = new Promise((resolve) => {
+          this.resolve = resolve;
+        });
+      }
+    }
 
-  async function getSVGDocument(elem) {
-    let doc = elem.getSVGDocument();
-    if (!doc) {
-      const waiter = makeWaiter();
+    async function getSVGDocument(elem) {
+      const data = elem.data;
+      elem.data = '';
+      elem.data = data;
+      const waiter = new Waiter();
       elem.addEventListener('load', waiter.resolve);
       await waiter.promise;
-      doc = elem.getSVGDocument();
+      return elem.getSVGDocument();
     }
-    return doc;
-  }
 
   const diagrams = {
     lookup: {