RxJS:转换运算符bufferToggle

在bufferToggle的情况下,它需要2个参数,openings和CloseingSelector。开始参数是可订阅的或承诺启动缓冲区的,而第二个参数CloseingSelector还是可订阅的或承诺指标的,以关闭缓冲区并发出收集的值。

语法

bufferToggle(openings: SubscribableOrPromise, closingSelector: SubscribableOrPromise): Observable

参量

openings – 开始新缓冲区的承诺或通知。

closingSelector – 一个函数,该函数将从可观察的开口中获取值并返回可预订或应许。

返回值

将返回一个observable,它将具有一个缓冲值数组。

import { fromEvent, interval,EMPTY} from 'rxjs';
import { bufferToggle } from 'rxjs/operators';

let btn = document.getElementById("btnclick");
let btn_clicks = fromEvent(btn, 'click');
let start = interval(2000);
let buffered_array = btn_clicks.pipe(
   bufferToggle(start, a => a%2 ==0 ? interval(1000): EMPTY)
);
buffered_array.subscribe(arr => console.log(arr));

在上面的示例中,如果接收到的值是偶数,则缓冲区将在2s之后开始,并在我们间隔1s后结束,否则它将清空缓冲区值并发出空值。

作者:terry,如若转载,请注明出处:https://www.web176.com/rxjs/1833.html

(0)
打赏 支付宝 支付宝 微信 微信
terryterry
上一篇 2021年2月8日 下午3:22
下一篇 2021年2月8日 下午3:36

相关推荐

发表回复

登录后才能评论