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、上饶辅助破解器简单,上饶辅助机器...
据相关数据显示!广西友乐app... 据相关数据显示!广西友乐app辅助工具!确实存在有辅助器(有挂攻略)-哔哩哔哩1、游戏颠覆性的策略玩...
今天上午!新上游通用挂!原来真... 今天上午!新上游通用挂!原来真的有辅助平台(有挂总结)-哔哩哔哩;一、新上游通用挂游戏安装教程牌型概...
有了最新消息!大唐山西辅助软件... 有了最新消息!大唐山西辅助软件!其实存在有辅助工具(有挂详情)-哔哩哔哩1、大唐山西辅助软件免费脚本...
值得注意的是!微乐贵阳捉鸡麻将... 值得注意的是!微乐贵阳捉鸡麻将开挂!其实真的是有辅助神器(有挂技巧)-哔哩哔哩1、玩家可以在微乐贵阳...
据报道!广东雀神智能插件安装软... 据报道!广东雀神智能插件安装软件!总是是真的辅助工具(有挂猫腻)-哔哩哔哩1、游戏颠覆性的策略玩法,...
今天下午!小程序牵手跑得快辅助... 今天下午!小程序牵手跑得快辅助器!一直是有辅助下载(有挂规律)-哔哩哔哩1、小程序牵手跑得快辅助器公...
今天上午!钱塘十三水透视脚本!... 今天上午!钱塘十三水透视脚本!好像真的有辅助平台(有挂教学)-哔哩哔哩该软件可以轻松地帮助玩家将钱塘...
突发!微信小程序辅助器防检测!... 突发!微信小程序辅助器防检测!原来有挂辅助软件(有挂头条)-哔哩哔哩1、微信小程序辅助器防检测辅助软...
截至目前!吉安中至小程序微信辅... 截至目前!吉安中至小程序微信辅助!确实是有辅助app(真实有挂)-哔哩哔哩吉安中至小程序微信辅助能透...