Groups pairs of consecutive emissions together and emits them as an array of two values.
pairwise 将连续的发射出的值进行分组并配对,然后以数组的数据结构进行发射。
pairwise 返回的数据类型如下:返回一个新的 OperatorFunction,这是一个函数,该函数返回一个新的 Observable,以数组的结构包裹了源 Observable 发射的值。
OperatorFunction<T, [T, T]>: A function that returns an Observable of pairs (as arrays) of consecutive values from the source Observable.
pairwise 的弹珠图:
下列这段代码,计算每次屏幕点击和前一次点击的绝对距离:
import { fromEvent } from 'rxjs'; import { pairwise, map } from 'rxjs/operators'; const clicks = fromEvent(document, 'click'); const pairs = clicks.pipe(pairwise()); const distance = pairs.pipe( map((pair) => { const x0 = pair[0].clientX; const y0 = pair[0].clientY; const x1 = pair[1].clientX; const y1 = pair[1].clientY; return Math.sqrt(Math.pow(x0 - x1, 2) + Math.pow(y0 - y1, 2)); }) ); distance.subscribe((x) => console.log(x));