April 30, 2021
DartのStreamでRxのBehavior Subjectを再現する
Dartには標準ライブラリのasyncパッケージにStream クラスが含まれています。
これはこれでとても便利なのですが、Androidで長く使っていたせいで非同期処理の操作がRx脳になっているので、時々こういうのはRxではできるのになーって思うことが多々あります。 Rxで個人的に一番好きなクラスはBehaviorSubjectでStreamの最後の値をキャッシュしておいて、Subscribe(Listen)と同時に最後の値をemitしてくれるものです。
オペレータだとdistinctUntilChangedかscanかwithLatestFron(combine)です。
Read more