From 186081fcdd536cd5b9ce1c9352c920a6acadddf7 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 25 Dec 2020 18:27:19 +0300 Subject: [PATCH] avoid debounce when LIST_QUERY_DEBOUNCE_TIME is 0 --- .../core/src/lib/services/list.service.ts | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/list.service.ts b/npm/ng-packs/packages/core/src/lib/services/list.service.ts index 135b13a912..0bd3e927ae 100644 --- a/npm/ng-packs/packages/core/src/lib/services/list.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/list.service.ts @@ -1,5 +1,12 @@ -import { Inject, Injectable, OnDestroy, Optional } from '@angular/core'; -import { BehaviorSubject, Observable, of, ReplaySubject, Subject } from 'rxjs'; +import { Injectable, Injector, OnDestroy } from '@angular/core'; +import { + BehaviorSubject, + MonoTypeOperatorFunction, + Observable, + of, + ReplaySubject, + Subject, +} from 'rxjs'; import { catchError, debounceTime, @@ -68,7 +75,7 @@ export class ListService implements OnDes get query$(): Observable { return this._query$ .asObservable() - .pipe(debounceTime(this.delay || 300), shareReplay({ bufferSize: 1, refCount: true })); + .pipe(this.delay, shareReplay({ bufferSize: 1, refCount: true })); } private _isLoading$ = new BehaviorSubject(false); @@ -89,7 +96,11 @@ export class ListService implements OnDes } as any) as QueryParamsType); }; - constructor(@Optional() @Inject(LIST_QUERY_DEBOUNCE_TIME) private delay: number) { + private delay: MonoTypeOperatorFunction; + + constructor(injector: Injector) { + const delay = injector.get(LIST_QUERY_DEBOUNCE_TIME, 300); + this.delay = delay ? debounceTime(delay) : tap(); this.get(); }