Javascript RxJS运算符,该运算符不';在完成之前,不要再次发射到内部可见光

Javascript RxJS运算符,该运算符不';在完成之前,不要再次发射到内部可见光,javascript,rxjs,Javascript,Rxjs,我正在寻找一个类似于switchMap的操作符,但是我希望它在第二次发射之前,不要取消之前的内部可观测值,而是等待其内部可观测值完成 一个常见的用例是用户快速点击按钮,通过管道发送到HTTP请求,然后转发显示,如下所示: 单击$.pipe(switchMap(()=>this.http.get(“/something”)).subscribe(res=>/) 这将在用户每次单击按钮时取消http请求。相反,我想忽略按钮的点击,直到内部可观察对象完成,然后再向它发出第二次,以此类推 这个用例是否有

我正在寻找一个类似于
switchMap
的操作符,但是我希望它在第二次发射之前,不要取消之前的内部可观测值,而是等待其内部可观测值完成

一个常见的用例是用户快速点击按钮,通过管道发送到HTTP请求,然后转发显示,如下所示:

单击$.pipe(switchMap(()=>this.http.get(“/something”)).subscribe(res=>/)

这将在用户每次单击按钮时取消http请求。相反,我想忽略按钮的点击,直到内部可观察对象完成,然后再向它发出第二次,以此类推

这个用例是否有一个操作符或者一个简单的操作符集合?谢谢

检查。它似乎完全符合你的需要

排气图忽略每个新的投影可见光 如果之前的预计可观测数据尚未完成。一旦 一个完成后,它将接受并展平下一个投影 观察并重复这个过程

检查。它似乎完全符合你的需要

排气图忽略每个新的投影可见光 如果之前的预计可观测数据尚未完成。一旦 一个完成后,它将接受并展平下一个投影 观察并重复这个过程


下面是使用exhaustMap操作符的示例

var clicks=Rx.Observable.fromEvent(document.querySelector(“按钮”),“click”);
var结果=点击次数。排气量图((ev)=>{
ev.target.setAttribute(“禁用”,真);
返回Rx.可观测间隔(5000).取(1)
.do(()=>ev.target.removeAttribute(“禁用”);
});

subscribe(x=>console.log(x))以下是使用排气图操作符的示例

var clicks=Rx.Observable.fromEvent(document.querySelector(“按钮”),“click”);
var结果=点击次数。排气量图((ev)=>{
ev.target.setAttribute(“禁用”,真);
返回Rx.可观测间隔(5000).取(1)
.do(()=>ev.target.removeAttribute(“禁用”);
});
subscribe(x=>console.log(x))