RxJS pairwise

2020-10-14 10:26 更新

將成對(duì)的連續(xù)發(fā)射分組在一起,并將它們作為一組發(fā)射 兩個(gè)值。

pairwise<T>(): OperatorFunction<T, [T, T]>

參量

沒有參數(shù)。

returns

OperatorFunction<T, [T, T]>:可觀察的成對(duì)的(作為數(shù)組) 來自源 Observable 的連續(xù)值。

描述

將當(dāng)前值和上一個(gè)值放在一起為 一個(gè)數(shù)組,并發(fā)出該數(shù)組。

pairwise marble diagram

源 Observable 的第 N 個(gè)發(fā)射將導(dǎo)致輸出 Observable 發(fā)出前一個(gè)和當(dāng)前值的數(shù)組[(N-1)th,Nth],作為 對(duì)。 因此, pairwise在第二個(gè)及后續(xù) 來自源的排放可觀察到,但不是第一次排放,因?yàn)? 在這種情況下,沒有先前的值。

每次點(diǎn)擊(從第二次開始),發(fā)出與上一次點(diǎn)擊的相對(duì)距離

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));

也可以看看

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)