Angulartypeaheaddebouncetimerequest
创始人
2024-10-29 20:01:04
0

在Angular中使用debounceTime对typeahead搜索输入进行节流,减少请求次数。

在HTML模板中,通过ngbTypeahead指令绑定搜索输入,并使用debounceTime方法对搜索输入进行节流:


在组件中,定义搜索函数search并在其中使用debounceTime方法:

import { Component } from '@angular/core';
import { Subject } from 'rxjs/Subject';
import { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  searchTerm: string;
  searchTerms = new Subject();

  search = (text$: Observable) => {
    return text$.pipe(
      debounceTime(200),
      distinctUntilChanged(),
      switchMap(term => this.searchTerms(term))
    );
  }

  constructor() {
    this.searchTerms.pipe(
      debounceTime(200),
      distinctUntilChanged(),
      switchMap(term => this.search(term))
    ).subscribe(results => {
      console.log(results);
    });
  }

  search(term: string): Observable {
    // place your http request here
    return of([]);
  }

  formatter(result) {
    // place your formatter here
    return result;
  }
}

此方法使用rxjs的Subject及相应的操作符来对输入进行节流和去重,最终返回一个Observable来获取搜索结果。你可以在search函数中进行实际的搜索请求,也可以使用rxjs的of函数来返回一个静态的结果集。示例代码中的formatter函数用于对搜索结果进行格式化,你可以根据实际情况进行修改。

相关内容

热门资讯

透视规律!德普之星有透视辅助吗... 透视规律!德普之星有透视辅助吗,如何下载微乐自建房黑科技入口,曝光透视(真的有挂)-哔哩哔哩1、实时...
脚本开挂!wepoker有辅助... 脚本开挂!wepoker有辅助插件吗,wepoker有辅助工具吗(透视)其实真的有器(哔哩哔哩)1)...
透视科技!wepoker透视a... 透视科技!wepoker透视app下载,微乐自建房辅助工具别人怎么看,科普脚本(有挂神器)-哔哩哔哩...
透视曝光!aapoker公共底... 透视曝光!aapoker公共底牌,aapoker辅助器怎么用(透视)一贯是有软件(哔哩哔哩)1、有没...
近期!hh poker透视器下... 近期!hh poker透视器下载,微乐广西小程序脚本,专业透视(有挂秘笈)-哔哩哔哩1、玩家可以在h...
透视开挂!HH平台挂,hhpo... 透视开挂!HH平台挂,hhpoker透视方法(透视)本来真的有器(哔哩哔哩)1、实时透视辅助更新:用...
透视脚本!wpk作必弊,微乐云... 透视脚本!wpk作必弊,微乐云南小程序辅助器,曝光脚本(了解有挂)-哔哩哔哩亲,关键说明,wpk作必...
脚本详细!wpk德州局怎么透视... 脚本详细!wpk德州局怎么透视,wpk模拟器(透视)好像真的有技巧(哔哩哔哩)1、游戏颠覆性的策略玩...
透视数据!黑侠破解wepoke... 透视数据!黑侠破解wepoker,微乐建房辅助工具免费入口,关于透视(的确有挂)-哔哩哔哩1、用户打...
脚本必备!wepoker破解器... 您好,epoker免费透视脚本这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054...