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));
輸出
廣告