Forráskód Böngészése

HUE-9040 [search] Fix issue where charts sometimes spins forever

Johan Ahlen 6 éve
szülő
commit
a8206d23f0
1 módosított fájl, 14 hozzáadás és 19 törlés
  1. 14 19
      desktop/core/src/desktop/js/ext/nv.d3.1.1.15b.custom.js

+ 14 - 19
desktop/core/src/desktop/js/ext/nv.d3.1.1.15b.custom.js

@@ -52,34 +52,29 @@ nv.log = function() {
 };
 
 
-nv.render = function render(step) {
-  step = step || 1;
-
+nv.render = () => {
   nv.render.active = true;
   nv.dispatch.render_start();
 
-  const renderLoop = function() {
-    let chart, graph;
-
-    for (let i = 0; i < step && (graph = nv.render.queue[i]); i++) {
-      chart = graph.generate();
-      if (typeof graph.callback === 'function') {
-        graph.callback(chart);
-      }
-      nv.graphs.push(chart);
+  const renderLoop = () => {
+    if (!nv.render.queue.length) {
+      nv.dispatch.render_end();
+      nv.render.active = false;
+      return;
     }
 
-    nv.render.queue.splice(0, i);
+    const graph = nv.render.queue.shift()
+    const chart = graph.generate();
 
-    if (nv.render.queue.length) {
-      setTimeout(renderLoop, 0);
-    } else {
-      nv.dispatch.render_end();
-      nv.render.active = false;
+    if (typeof graph.callback === 'function') {
+      graph.callback(chart);
     }
+    nv.graphs.push(chart);
+
+    window.setTimeout(renderLoop, 0);
   };
 
-  setTimeout(renderLoop,0);
+  window.setTimeout(renderLoop,0);
 };
 
 nv.render.active = false;