web-dev-qa-db-ja.com

RxJS Observableの最後の2つの値の差を取得する

スクロール位置を追跡する観測可能な

 const scroll = Observable
  .fromEvent(document, 'scroll')
  .map(e => window.pageYOffset)
  .startWith(0)

スクロールデルタ(newScroll - lastScroll)

const scrollDelta = scroll
  // ???
  .subscribe(delta => console.log('delta:', delta) )

このようなものを実装する方法は?スキャンを試みましたが、成功しませんでした。 THX

20
Efflam Daniel

pairwise を使用:

scroll
    .pairwise()
    .map([a, b] => b - a);
28
Brandon

古い質問ですが、RxJSバージョン5の情報を追加するには、APIサーフェスが多少変更され、答えを見つけるのに少し時間がかかりました。pairwiseに相当するものはbufferWithCount(2,1)(v4 )またはbufferCount(2,1)(v5)。

8
brokenalarms