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