RxJS bufferWhen

2020-10-14 09:52 更新

使用關(guān)閉的工廠功能緩沖源 Observable 值 可以確定何時關(guān)閉,發(fā)出和重置緩沖區(qū)的可觀察對象。

bufferWhen<T>(closingSelector: () => Observable<any>): OperatorFunction<T, T[]>

參量

關(guān)閉選擇器 一個不需要 參數(shù)并返回一個 Observable,該信號指示緩沖區(qū)關(guān)閉。

returns

OperatorFunction<T, T[]>:可觀察到的緩沖值數(shù)組。

描述

收集過去的值作為數(shù)組。 什么時候 開始收集值,它調(diào)用一個函數(shù),該函數(shù)返回一個 Observable 告訴何時關(guān)閉緩沖區(qū)并重新開始收集。

bufferWhen marble diagram

立即打開緩沖區(qū),然后在可觀察到的情況下關(guān)閉緩沖區(qū) 調(diào)用 返回 closingSelector函數(shù) 的值會發(fā)出一個值。 關(guān)門的時候 緩沖區(qū),它將立即打開一個新緩沖區(qū)并重復(fù)該過程。

每[1-5]秒隨機(jī)發(fā)出一次最終點擊的數(shù)組

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


const clicks = fromEvent(document, 'click');
const buffered = clicks.pipe(bufferWhen(() =>
  interval(1000 + Math.random() * 4000)
));
buffered.subscribe(x => console.log(x));

也可以看看

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號