How to implement a debounce time in keyup event in Angular 6

后端 未结 7 2037
盖世英雄少女心
盖世英雄少女心 2020-12-05 17:57

I create an Angular app that search students from API. It works fine but it calls API every time an input value is changed. I\'ve done a research that I need something calle

7条回答
  •  囚心锁ツ
    2020-12-05 18:31

    Demo Link

    Tutorial Source Link

    Using Template Variable

    
    
        ...
        ...    
            fromEvent(this.movieSearchInput.nativeElement, 'keyup').pipe(
            // get value
            map((event: any) => {
                return event.target.value;
            })
            // if character length greater then 2
            ,filter(res => res.length > 2)
            // Time in milliseconds between key events
            ,debounceTime(1000)        
            // If previous query is diffent from current   
            ,distinctUntilChanged()
            // subscription for response
            ).subscribe((text: string) => {
                this.isSearching = true;
                this.searchGetCall(text).subscribe((res)=>{
                console.log('res',res);
                this.isSearching = false;
                this.apiResponse = res;
                },(err)=>{
                this.isSearching = false;
                console.log('error',err);
                });
            });
        ...
        ...
    

提交回复
热议问题