RxJS - 转换运算符 buffer

缓冲区对可观察对象进行操作,并将参数作为可观察对象。它将开始在数组中缓冲其原始可观察对象上发出的值,并在作为参数的可观察对象发出时发出相同的值。一旦作为参数的可观察对象发出,缓冲区就会重置并再次开始在原始对象上缓冲,直到输入可观察对象发出,并且相同的场景重复。

语法

buffer(input_observable: Observable): Observable

参数

input_observable − 一个可观察对象,它将使缓冲区发出值。例如,按钮单击。

返回值

将返回一个可观察对象,它将具有一个缓冲值数组。我们将通过一个示例来理解 buffer() 运算符的工作原理。

在下面的示例中,我们将使用按钮点击作为缓冲区的可观察输入。1 秒的间隔将作为调用缓冲区的原始可观察值。缓冲区将收集给定时间间隔内传递的点击。

示例

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