[TIL] 2021.05.28


👩🏻‍💻 今日の勉強内容


Subject ( コメントサイト )

  • Observable + Observer = Subject
  • トピックは傍観者であるため、1つ以上の観察可能性を購読することができ、1つのプロジェクトを通じて新しいプロジェクトを再公開、観察、排除することもできます.
  • イベントを外部に渡す場合は、Delegateの代わりに使用することもできます.
  • の観測はユニキャスト、Subjectはマルチキャストなので観測は独立運転、Subjectは連続(?)を選択してもアクセスできます.
  • Relayとの違い

  • Subjectとは異なります.completed, .エラーは発生しません.
  • がリリースされる前に実行を続行します.
  • UIEventでの使用に適しています.
  • Map vs FlatMap ( コメントサイト )


    Map

  • 演算値
  • を返す必要がある.

    FlatMap

  • Observable,
  • を返す必要がある.

    Observableで得られた値を別のObservableに渡す必要がある場合

  • FlatMapを知らずにMapを使用した場合:
  • loadTM(lat: lat, lng: lng)
        .map{ tm in
                self.loadStation(tmX: tm.tmX, tmY: tm.tmY)
                    .map{ station in
                        self.loadFineDust(stationName: station)
                            .bind(to: self.observable)
                    }
                    .subscribe()
        }
        .subscribe()
    各Observerableは購読します誰が見てもコードは複雑でエラー...ははは
  • FlatMapを使用します.
  • loadTM(lat: lat, lng: lng)
        .flatMap{ tm in self.loadStation(tmX: tm.tmX, tmY: tm.tmY)}
        .flatMap{ station in self.loadFineDust(stationName: station)}
        .bind(to: self.observable)
    FlatMapでより簡単なコードを完成!