首页 > 解决方案 > RxJS 阻止 switchMap 首先发送请求

问题描述

我有一个组件订阅了同时触发多次的事件。此订阅向服务器发起请求以获取数据。我想要实现的是只触发一个请求。

相反,在最终请求完成之前,我会收到很多取消的请求:

在此处输入图像描述

更新:

this.someObject.onEvent()
  .pipe(switchMap((filterCriterias) => this.loadData(filterCriterias)))
  .subscribe((res) => {
    this.data = res;
});

有没有一种方法可以创建一个集水池并且只触发最后一个请求,如图所示(首先不会获得取消的请求)?

我正在使用 RxJs 6.3

提前致谢!

标签: angulartypescriptrxjsrxjs6

解决方案


this.someObject.onEvent()
  .pipe(debounceTime(300),switchMap(() => this.loadData()))
  .subscribe((res) => {
    this.data = res;
}); 

推荐阅读