aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/helpers/rxjs.ts
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/helpers/rxjs.ts')
-rw-r--r--client/src/app/helpers/rxjs.ts11
1 files changed, 7 insertions, 4 deletions
diff --git a/client/src/app/helpers/rxjs.ts b/client/src/app/helpers/rxjs.ts
index 625bca0f7..2eaf0a055 100644
--- a/client/src/app/helpers/rxjs.ts
+++ b/client/src/app/helpers/rxjs.ts
@@ -2,10 +2,10 @@ import { uniq } from 'lodash-es'
2import { Observable } from 'rxjs' 2import { Observable } from 'rxjs'
3import { bufferTime, distinctUntilChanged, filter, map, share, switchMap } from 'rxjs/operators' 3import { bufferTime, distinctUntilChanged, filter, map, share, switchMap } from 'rxjs/operators'
4 4
5function buildBulkObservable <T extends number | string, R> (options: { 5function buildBulkObservable <P extends number | string, R> (options: {
6 notifierObservable: Observable<T> 6 notifierObservable: Observable<P>
7 time: number 7 time: number
8 bulkGet: (params: T[]) => Observable<R> 8 bulkGet: (params: P[]) => Observable<R>
9}) { 9}) {
10 const { notifierObservable, time, bulkGet } = options 10 const { notifierObservable, time, bulkGet } = options
11 11
@@ -14,7 +14,10 @@ function buildBulkObservable <T extends number | string, R> (options: {
14 bufferTime(time), 14 bufferTime(time),
15 filter(params => params.length !== 0), 15 filter(params => params.length !== 0),
16 map(params => uniq(params)), 16 map(params => uniq(params)),
17 switchMap(params => bulkGet(params)), 17 switchMap(params => {
18 return bulkGet(params)
19 .pipe(map(response => ({ params, response })))
20 }),
18 share() 21 share()
19 ) 22 )
20} 23}