RxJS - 變換運算子 buffer



buffer 運算作用於一個可觀察物件,並採用引數將它作為可觀察物件。它會開始在其原始可觀察物件中發射的值快取在一個數組中,並且當用作引數的可觀察物件發射時,它會發射同樣的值。一旦用作引數的可觀察物件發射,則快取會重置並且在原始可觀察物件發射之前,在原始可觀察物件上重新開始快取,並且同樣的場景會重複。

語法

buffer(input_observable: Observable): Observable

引數

input_observable − 用於讓快取發射值的某個可觀察物件。例如,按鈕單擊。

返回值

將返回一個可觀察物件,它將包含一個快取值的陣列。我們將在一個示例中學習 buffer() 運算子的工作原理。

在下面的示例中,我們將使用一個按鈕單擊用作要快取的可觀察物件輸入。時間間隔為 1s,它將作為呼叫了 buffer 的原始可觀察物件。buffer 將收集在給定的時間間隔中傳遞的單擊。

示例

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

let btn = document.getElementById("btnclick");

let btn_clicks = fromEvent(btn, 'click');
let interval_events = interval(1000);
let buffered_array = interval_events.pipe(buffer(btn_clicks));
buffered_array.subscribe(arr => console.log(arr));

輸出

buffer Operator
廣告
© . All rights reserved.