RxSwift - Observable & Observer
//MARK: of - 가번적인(변경 될수 있는, 변경 할수 있는)Element가 포함하는 Observable Sequence를 생성
//MARK: of - Element가 많다고 해서 Array 타입이 아니다 설정 값은 <Int>타입이며 확인을 해보면 Observable<Int>로 되어 있다. 가변 적으로 Element들을 넣을수 있다는 것이다.
let observableOfInt: Observable<Int> = Observable<Int>.of(1,2,3,4,5)
let observableOfString: Observable<String> = Observable<String>.of("1","2","3","4")
print(observableOfInt)
print(observableOfString)
//MARK: Observable & Observer
//MARK: Observable는 관찰 가능한 상태를 유지하며 Event를 방출한다. 해당 Event는 Observer(관찰자)에게 전달하며, Observer가 이벤트를 전달받으면 이를 Observer가 처리합니다.
//MARK: 이러한 행위를 Subscribe(구독) 한다고 표현하기에 Observer를 구독자라고 부른다.
//MARK: Observable이 방출 하는 이벤트를 Observer가 받아내서 처리하기 위해서는 구독(Subscribe)행위가 필요하다고 앞서 언급 하였으며, 구독을 하기 위해서는 Subscribe 메서드를 호출 하여야 합니다.
//MARK: create 연산자
//MARK: create 연산자는 Observable의 Event(옵저버블)를 직접 생성 한다. 생성한 Event를 처리하기 위해서는 구독(Subscribe)메서드를 호출 하여야 한다. Create메서드는 단순히 Observer에게 전달한 Event를 직접 생성 하는것이다.
let randomObservable: Observable<Int> = Observable<Int>.create { element in
element.onNext(1)
return Disposables.create()
}
randomObservable.subscribe (onNext: { (element) in
print("observer 1 : \(element)")
})
Observables 개념이란
- Observables Observable 클래스는 Rx코드 기반으로 T(제너릭)형태의 데이터를 전달 할 수 있는 이벤트 들을 비동기적으로 생성하는 기능입니다. 간단하게 말해서 다른 클래스에서 emit(방출)하는 값을 구독할수 있게 해준다는 의미 이다.
-
Observable는 ObservableType 프로토콜을 준수한다 또한 ObsrvableType 프로토콜은 ObservableConvertibleType 프로토콜을 준수합니다.
- next - 최신/다음 데이터를 전달한다
- completed - 성공적으로 일련의 이벤트들을 종료시키는 이벤트 즉, Observable(생성자)가 성공적으로 자신의 생명주기를 완료했으므로, 추가적으로 이벤트를 방출 하지 않는다.
- error - Observable(생성자)가 에러가 났으니 이벤트를 방출 하지 않는다. 추가적으로 이벤트를 생성하지 않을 것임을 의미(에러와 함께 완전 종료)
-
Observable는 next, error, completed 구성요소를 가지고 있다.
let observableWithInt: Observable<Int> = Observable<Int>.just(1)
let observableWithString: Observable<String> = Observable<String>.just("2")
print(observableWithInt)
print(observableWithString)
Observable 생성
- just - 오직 하나의 Element를 포함하는 Observable Sequence를 생성
let observableWithInt: Observable<Int> = Observable<Int>.just(1)
let observableWithString: Observable<String> = Observable<String>.just("2")
print(observableWithInt)
print(observableWithString)
- of - 가번적인(변경 될수 있는, 변경 할수 있는)Element가 포함하는 Observable Sequence를 생성
- of - Element가 많다고 해서 Array 타입이 아니다 설정 값은 타입이며 확인을 해보면 Observable로 되어 있다. 가변 적으로 Element들을 넣을수 있다는 것이다.
let observableOfInt: Observable<Int> = Observable<Int>.of(1,2,3,4,5)
let observableOfString: Observable<String> = Observable<String>.of("1","2","3","4")
print(observableOfInt)
print(observableOfString)
Observable & Observer
- Observable는 관찰 가능한 상태를 유지하며 Event를 방출한다. 해당 Event는 Observer(관찰자)에게 전달하며, Observer가 이벤트를 전달받으면 이를 Observer가 처리합니다.
- 이러한 행위를 Subscribe(구독) 한다고 표현하기에 Observer를 구독자라고 부른다.
- Observable이 방출 하는 이벤트를 Observer가 받아내서 처리하기 위해서는 구독(Subscribe)행위가 필요하다고 앞서 언급 하였으며, 구독을 하기 위해서는 Subscribe 메서드를 호출 하여야 합니다.
Author And Source
이 문제에 관하여(RxSwift - Observable & Observer), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dohyun8032/RxSwift-Observable-Observer저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)