티스토리 뷰

IOS/RxSwift

[RxSwift] Observable 알아보기

내일도이렇게 2022. 4. 12. 11:58

Observable<T> 

  • T 형태의 데이터 snapshot 을 전달 할 수 있는 일련의 이벤트를 비동기적으로 생성하는 기능 
  • 하나 이상의 observers 가 실시간으로 어떤 이벤트에 반응
  • 세 가지 유형의 이벤트만 방출 
enum Event<Element> { 
    case next(Element)  // next element 
    case error(Swift.Error)  // sequence failed with error 
    case completed  // sequence terminated successfully
}

Observable 생명주기 

  • Observable 은 어떤 구성요소를 가지는 next 이벤트를 계속해서 방출할 수 있다. 
  • error  이벤트를 방출하여 완전 종료될 수 있다.
  • complete 이벤트를 방출하여 완전 종료 될 수 있다. 

 

just, of, from 

print("-------just-------")
Observable.just(1)   // 하나의 요소만 가능
    .subscribe(onNext: {
        print($0)
    })
-------just-------
1


print("-------of1-------")
Observable.of(1, 2, 3)
    .subscribe(onNext: {
        print($0)
    })
-------of1-------
1
2
3

print("-------of2-------")
Observable.of([1, 2, 3])
    .subscribe(onNext: {
        print($0)
    })
-------of2-------
[1, 2, 3]


print("-------from-------") // 배열만 받는다.
Observable.from([1, 2, 3])
    .subscribe(onNext: {
        print($0)
    })
    .dispose()
-------from-------
1
2
3

 

range 

print("------range------") // 범위
Observable.range(start: 1, count: 9)
    .subscribe(onNext: {
        print("2*\($0)=\(2*$0)")
    })
    
    
------range------
2*1=2
2*2=4
2*3=6
2*4=8
2*5=10
2*6=12
2*7=14
2*8=16
2*9=18

 

create 

print("------create1------")
Observable.create { observer -> Disposable in
    observer.onNext(1)
    observer.onCompleted()
    observer.onNext(2)
    return Disposables.create()
}
.subscribe(onNext: {
    print($0)
}, onError: {
    print($0)
}, onCompleted: {
    print("completed")
}, onDisposed: {
    print("disposed")
})
.disposed(by: disposeBag)
  
// onCompleteted 호출 전까지 구독이 된다.
 
------create1------
1
completed
disposed

 

Reference 

https://fastcampus.co.kr/dev_online_iosapp

'IOS > RxSwift' 카테고리의 다른 글

[RxSwift] Subject 알아보기  (0) 2022.04.19
RxSwift 개념  (0) 2022.04.13
[RxSwift] Single,Maybe,Completable 알아보기  (0) 2022.04.12
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함