Rxで1つ前のイベントを比較してイベントを発火させる

公開日:  最終更新日:2020/03/17

一つ前のイベントを取得して、前回の値と違ったらイベントを発火するということをしたかったのですが、なかなか出てこなかったので備忘録。
sponcer link
ヒントはこちらにありました。
blog.ishkawa.org
Rxで1つ前の値を取得する
https://blog.ishkawa.org/2016/04/20/1461082954/
Twitter for iOSには選択中のタブをもう1度タップしたら最上部までスクロールするという機能があります。便利ですね。
ただ、Observableの部分が省略されていったので、どうしたもんかなぁと思ったのですが、こんな感じでかけました。 そして、前回値と比較してイベントを発火するのはこんな感じで書きました。 あとはdifferenceObservableに対してsubscribeしておけば違う値が来たときにだけイベントが発火する仕様の完成です。 この方法のミソはReplaySubjectは流れるイベントをbuffer分おぼえていて、skipを使えば指定したところのイベントがとれるので直前に流れたイベントを取得することができるって感じです。
  • このエントリーをはてなブックマークに追加
  • Pocket
PAGE TOP ↑