gpt4 book ai didi

angular - RxJS 阻止 switchMap 首先发送请求

转载 作者:行者123 更新时间:2023-12-02 17:00:26 26 4
gpt4 key购买 nike

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

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

enter image description here

更新:

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

有没有一种方法可以创建一个集水盆,并且只触发图片中的最后一个请求(而不是一开始就取消请求)?

我正在使用 RxJs 6.3

提前致谢!

最佳答案

看起来你可以使用 exhaustMap 而不是 switchMap

exhaustMap 将忽略所有后续排放,直到内部 Observable 完成。因此,即使 onEvent() 发出五次,也只有第一次会触发 this.loadData()。在事件 this.loadData() 完成之前,将忽略所有其他发射。

this.someObject.onEvent()
.pipe(
exhaustMap(() => this.loadData())
)
.subscribe((res) => ...);

关于angular - RxJS 阻止 switchMap 首先发送请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54416988/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com