pairwise
function stable operator
Группирует пары последовательных эмиссий вместе и выводит их как массив из двух значений.
pairwise<T>(): OperatorFunction<T, [
T,
T
]>
Параметры
Параметров нет.
Возвращаемое значение
OperatorFunction<T, [ T, T ]>: Функция, которая возвращает Observable пар (в виде массивов) последовательных значений из исходного Observable.
Описание
Объединяет текущее значение и предыдущее значение в массив и выводит его.
N-я эмиссия из исходного Observable вызовет выходной Observable, чтобы вывести массив [(N-1)-го, N-го] предыдущего и текущего значения в виде пары. По этой причине, pairwise выводится при второй и последующих эмиссиях из исходного Observable, но не при первой эмиссии, так как в этом случае нет предыдущего значения.
Пример
При каждом клике (начиная со второго) выводить относительное расстояние до предыдущего клика
import { fromEvent, pairwise, map } from 'rxjs';
const clicks = fromEvent<PointerEvent>(document, 'click');
const pairs = clicks.pipe(pairwise());
const distance = pairs.pipe(
map(([first, second]) => {
const x0 = first.clientX;
const y0 = first.clientY;
const x1 = second.clientX;
const y1 = second.clientY;
return Math.sqrt(Math.pow(x0 - x1, 2) + Math.pow(y0 - y1, 2));
})
);
distance.subscribe(x => console.log(x)); См. также
© 2015–2022 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors.
Code licensed under an Apache-2.0 License. Documentation licensed under CC BY 4.0.
https://rxjs.dev/api/operators/pairwise