728x90
728x90
π‘ ReacitveX - Observable
- ReactiveX μμ Observer λ Observable μ subscribe νλ€.
- observer λ Observable μ΄ λ°©μΆνλ μμ΄ν (λ¨μΌ νΉμ μνμ€)μ μλ΅νλ€.
- μ΄λ₯Ό ν΅ν΄ λμμ±(concurrency) μ°μ°μ΄ κ°λ₯νλ€.
- Observable μ΄ κ°μ²΄λ₯Ό λ°©μΆν λκΉμ§ κΈ°λ€λ¦΄ νμ μμ΄, κ°μ²΄κ° λ°©μΆλλ©΄ κ·Έ μμ μ κ°μνλ κ΄μ°°μλ₯Ό observer λ΄μ λκ³ , κ·Έλ₯Ό ν΅ν΄ μλ¦Όμ λ°λλ€.
βοΈ Observer μμ± & ꡬλ
λΉλκΈ° λͺ¨λΈμμλ μλμ κ°μ νλ¦λλ‘ μ½λκ° μ€νλλ€.
- async method νΈμΆλ‘ κ²°κ³Όλ₯Ό 리ν΄λ°κ³ , νμν λμμ μ²λ¦¬νλ method λ₯Ό μ μνλ€. * Observer μ μΌλΆ
- Observable λ‘ λΉλκΈ° νΈμΆμ μ μνλ€.
- subscribe λ₯Ό ν΅ν΄ observer λ₯Ό Observable κ°μ²΄μ μ°κ²°μν¨λ€.
- onNext event λ°μμ μνν μ½λλ₯Ό ꡬννλ€.
π± Observable μ μλͺ μ£ΌκΈ°
1. Create
2. Subscribed
3. Next (μν)
- - - λ - - -
4. Completed / Error
5. Disposabled
βοΈ Observable μ μμ±ν λ μ΄μ©νλ operator
- Observable μ μμ±νλ κΈ°λ³Έ operator
- observer μ onNext, onError, onCompleted λ©μλλ₯Ό μ μ ν νΈμΆν΄ μμ±ν μ μλ€.
- Observable μμ± ν, μ λ¬ν λ°μ΄ν°λ₯Ό onNext(data) λ₯Ό ν΅ν΄ μ λ¬νκ³ , onCompleted() λ₯Ό ν΅ν΄ μ’ λ£νλ€.
- Error μ²λ¦¬κ° νμν κ²½μ° onError(error) λ₯Ό ν΅ν΄ μ λ¬νλ€.
- observer μ onCompleted νΉμ onError λ©μλκ° νλ²μ νΈμΆλμ΄μΌ νλ€.
- Observables.create μ onNext(data) λ₯Ό ν λ²μ μ¬μ©ν μ μλ operator μ΄λ€.
- λ°μ΄ν°κ° λ¨ νλλ§ μμ κ²½μ° Just λ₯Ό μ΄μ©νλ€.
- λ°μ΄ν° νκ°λ₯Ό μ λ¬νλ κ²μ΄μ§λ§, λ°°μ΄ νλλ₯Ό μ λ¬ν μλ μλ€. μ΄ λμλ event κ° ν λ² λ°μνλ€.
- Observables.create μ onNext(data) λ₯Ό ν λ²μ μ¬μ©ν μ μλ operator μ΄λ€.
- λ°μ΄ν°λ₯Ό μ¬λ¬κ°, κ° μ΄λ²€νΈλ‘ μ λ¬ν κ²½μ° From μ μ΄μ©νλ€.
- FromμΌλ‘ μ λ¬λλ λ°μ΄ν°λ array νμ μΌλ‘, κ° λ°°μ΄μ μμκ° λ°μ΄ν°λ‘ μ¬λ¬λ²μ event λ‘ μ λ¬λλ€.
βοΈ κ·Έ μΈμ Create κ΄λ ¨ operator
- Empty :: λΉμ΄μλ observable μ μ λ¬νκ³ μΆμ λ μ΄μ©νλ€.
- Never :: μ λ observable μ μ λ¬νμ§ μμ κ²½μ° μ΄μ©νλ€.
- Throw :: observable μ μμ±νκ³ , error λ₯Ό μ λ¬ν κ²½μ° μ΄μ©νλ€.
728x90
728x90