Bladeren bron

Update view.js (#1491)

Lutz Roeder 5 maanden geleden
bovenliggende
commit
aef9cd3707
2 gewijzigde bestanden met toevoegingen van 12 en 4 verwijderingen
  1. 2 2
      source/grapher.js
  2. 10 2
      source/view.js

+ 2 - 2
source/grapher.js

@@ -258,8 +258,8 @@ grapher.Graph = class {
         const state = { /* log: true */ };
         if (worker) {
             const message = await worker.request({ type: 'dagre.layout', nodes, edges, layout, state }, 2500, 'This large graph layout might take a very long time to complete.');
-            if (message.type === 'cancel') {
-                return 'graph-layout-cancelled';
+            if (message.type === 'cancel' || message.type === 'terminate') {
+                return message.type;
             }
             nodes = message.nodes;
             edges = message.edges;

+ 10 - 2
source/view.js

@@ -528,7 +528,7 @@ view.View = class {
         this.model = model;
         this._path = stack;
         const status = await this.render(this.activeTarget, this.activeSignature);
-        if (status !== '') {
+        if (status === 'cancel') {
             this.model = null;
             this._path = [];
             this._activeTarget = null;
@@ -1435,7 +1435,15 @@ view.Worker = class {
     }
 
     async request(message, delay, notification) {
-        this._cancel();
+        if (this._resolve) {
+            const resolve = this._resolve;
+            resolve({ type: 'terminate' });
+            delete this._resolve;
+            delete this._reject;
+            this._cancel(true);
+        } else {
+            this._cancel(false);
+        }
         return new Promise((resolve, reject) => {
             this._resolve = resolve;
             this._reject = reject;