RxJS - 變換運算子 bufferToggle



在 bufferToggle 的情況下,它需要 2 個引數,即 openings 和 closingSelector。opening 引數是對開始緩衝區的可訂閱項或承諾,第二個引數 closingSelector 是再次對關閉緩衝區併發出收集到的值的指示進行訂閱或承諾。

語法

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

引數

openings - 用於開始新緩衝區的承諾或通知。

closingSelector - 一個將從 openings 可觀察序列中獲取值並返回可訂閱項或承諾的函式。

返回值

將返回一個可觀察序列,其中包含緩衝值陣列。

示例

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));

在上面的示例中,緩衝區在 2 秒後啟動,並且在 1 秒間隔內當接收到的值為偶數時結束,否則它將清空緩衝區值併發出空值。

輸出

bufferToggle Operator
廣告
© . All rights reserved.