From dc764ddc9e499c46b04a9ff2d7b05eb5ebb59701 Mon Sep 17 00:00:00 2001
From: Xiao Gui <xgui3783@gmail.com>
Date: Fri, 15 Mar 2019 17:51:52 +0100
Subject: [PATCH] debug: debounce to fetch the right dataset

---
 deploy/datasets/index.js                           | 5 +++++
 src/atlasViewer/atlasViewer.dataService.service.ts | 4 +++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/deploy/datasets/index.js b/deploy/datasets/index.js
index 10eb068c5..40ca1dee5 100644
--- a/deploy/datasets/index.js
+++ b/deploy/datasets/index.js
@@ -6,6 +6,11 @@ init().catch(e => {
   console.warn(`dataset init failed`, e)
 })
 
+datasetsRouter.use((req, res, next) => {
+  res.setHeader('Cache-Control', 'no-cache')
+  next()
+})
+
 datasetsRouter.get('/templateName/:templateName', (req, res, next) => {
   const { templateName } = req.params
   getDatasets({ templateName })
diff --git a/src/atlasViewer/atlasViewer.dataService.service.ts b/src/atlasViewer/atlasViewer.dataService.service.ts
index 5eb68ec14..ae8c41d41 100644
--- a/src/atlasViewer/atlasViewer.dataService.service.ts
+++ b/src/atlasViewer/atlasViewer.dataService.service.ts
@@ -1,7 +1,7 @@
 import { Injectable, OnDestroy } from "@angular/core";
 import { Store, select } from "@ngrx/store";
 import { ViewerStateInterface, FETCHED_TEMPLATE, DataEntry, FETCHED_DATAENTRIES, safeFilter, FETCHED_SPATIAL_DATA, UPDATE_SPATIAL_DATA } from "../services/stateStore.service";
-import { map, distinctUntilChanged } from "rxjs/operators";
+import { map, distinctUntilChanged, debounceTime } from "rxjs/operators";
 import { Subscription, combineLatest } from "rxjs";
 import { AtlasViewerConstantsServices } from "./atlasViewer.constantService.service";
 import { PluginManifest } from "./atlasViewer.pluginService.service";
@@ -231,6 +231,8 @@ export class AtlasViewerDataService implements OnDestroy{
           map(({parcellationSelected})=>(parcellationSelected.name)),
           distinctUntilChanged()
         )
+      ).pipe(
+        debounceTime(16)
       ).subscribe((param : [string, string] ) => fetchData(param[0], param[1]))
     )
   }
-- 
GitLab