angular - Angular - 取消以前的搜索请求并只保留最后
问题描述
我有一个 HTTP 请求
searchService() {
return this.httpClient.get(URL);
}
我正在订阅这样
search() {
this.service.searchService().subscribe((data) => { });
}
我的问题是它需要几秒钟,如果有人使用不同的搜索键多次点击,结果取决于请求的速度。
所以,我想取消所有以前的订阅,只保留最后一次搜索
解决方案
您将需要使用一些 rxjs 运算符,即debounceTime
,distinctUntilChanged
并switchMap
确保您不会发送太多 API 调用,并且您只获得最新请求的结果。
查看这篇文章的详细示例:
https ://alligator.io/angular/real-time-search-angular-rxjs/
推荐阅读
- php - 如何使用 Bootstrap 4 Accordion 为垂直侧边栏菜单制作 Wordpress Walker 类?
- javascript - 图像坐标到视口坐标的错误转换 - openseadragon svgOverlay
- pyspark - AWS Glue 作业方法 pyWriteDynamicFrame 不存在
- c# - C# 对象序列化安全和最佳方法?谁能给我ans?
- javascript - 如何使用 JavaScript ES6 过滤和转换这个集合?
- apache-poi - Apache POI - 重新排序行
- python - Web抓取请求停止工作,在python中显示“响应[401]”?
- python-3.x - 如何将 Pyglet 与 Twisted/Asyncio 集成?
- java - 如何在 Java 中加密和解密 sqlite3 数据库?
- hive - presto + hive.metastore.uri + presto worker 如何连接到 hive Metastore