iOS/RxSwift

[RxSwift] Observable & Observer

듀니듀니 2022. 12. 5. 17:17

Observable와 Observer에 대해 정리해두려고 해요.

 

 

Observable ------ Event ----> Observer(Subscriber)

Observable <-- Subscribe --- Observer(Subscriber)

-> 옵저버블에서 발생한 새로운 이벤트는 Next를 통해 방출(Emission)

 

Observable

// #1 원형. create로 이벤트 만들기
Observable<Int>.create { (observer) -> Disposable in
    observer.on(.next(0))
    observer.onNext(1)
    
    observer.onCompleted()
    return Disposables.create()
}

// #2 이미 구현되어있는 이벤트 사용

Observable.from([0,1])

 

Observer

let o1 = Observable<Int>.create { (observer) -> Disposable in
   observer.on(.next(0))
   observer.onNext(1)
   
   observer.onCompleted()
   
   return Disposables.create()
}

// #1
o1.subscribe {
    print("== Start ==")
    print($0)
    if let elem = $0.element {
        print(elem)
    }
    print("== End ==")
}
print("-----------------------")

// #2
o1.subscribe (onNext: { elem in
    print(elem)
})


Observable.from([1, 2, 3])

/* 실행 결과

== Start ==
next(0)
0
== End ==
== Start ==
next(1)
1
== End ==
== Start ==
completed
== End ==
-----------------------
0
1

*/

 

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

[RxSwift] Operator - Filter  (0) 2022.12.16
[RxSwift] Why RxSwift?  (0) 2022.12.05