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函数用于对搜索结果进行格式化,你可以根据实际情况进行修改。

相关内容

热门资讯

透视手筋!如何判断wpk辅助软... 透视手筋!如何判断wpk辅助软件的真假,werplan透视挂(透视)一贯存在有挂(哔哩哔哩);小薇(...
透视操作!pokerworld... 透视操作!pokerworld破解版下载,wepoker有机器人吗(透视)真是存在有挂(哔哩哔哩)1...
透视步骤!wpk插件,大菠萝手... 透视步骤!wpk插件,大菠萝手游辅助(透视)都是有挂(哔哩哔哩)1、完成大菠萝手游辅助辅助器v3.3...
透视指引!wepoker手机助... 透视指引!wepoker手机助手,epoker透视(透视)本来真的有挂(哔哩哔哩);该软件可以轻松地...
透视方式!德州hhpoker脚... 透视方式!德州hhpoker脚本,wepoker数据分析(透视)真是真的是有挂(哔哩哔哩)wepok...
透视课程!wepoker安装教... 透视课程!wepoker安装教程,epoker有透视吗(透视)本来是有挂(哔哩哔哩)1、操作简单,无...
透视窍门!hhpoker外开挂... 透视窍门!hhpoker外开挂靠谱吗,wepoker插件辅助(透视)都是是有挂(哔哩哔哩)1、该软件...
透视教程书!wepoker脚本... 透视教程书!wepoker脚本,wepoker免费脚本弱密码(透视)竟然真的有挂(哔哩哔哩)1、每一...
透视诀窍!德州透视是真的假的,... 透视诀窍!德州透视是真的假的,hhpoker哪个俱乐部靠谱(透视)都是是有挂(哔哩哔哩)1、透视诀窍...
透视妙计!wepoker辅助器... 透视妙计!wepoker辅助器安装包,hhpoker一直输有挂吗(透视)好像真的有挂(哔哩哔哩)1、...