관리 메뉴

꿀맛코딩

observable.from and observable.just 본문

공부방/RxKotlin

observable.from and observable.just

soycrab 2019. 7. 23. 18:07

observable.from() 과 observable.just() 의 차이에 대해서 알아보자 

 

observable.from은 내부의 아이템들의 요소를 각각 배출하고 

 

observable.just는 내부의 아이템들을 각각 배출하는데 

 

알기쉽게 결과로 보면 다음과 같다. 

 

먼저 from 코드와 결과 이다.

 

코드 

 

val fromObserver = object : Observer<String> {
override fun onComplete() {
    println("onComplete")
}

override fun onSubscribe(d: Disposable) {
    println("New Subscribtion = ${d}")
}

override fun onNext(item: String) {
   println("Next = $item")
}

override fun onError(e: Throwable) {
   println("Error Occured ${e.message}")
}
}

 

fun simpleObservableFrom() {
    val list = listOf("String1", "String2", "String3", "String4")
    val observableFromIterable = Observable.fromIterable(list)
    observableFromIterable.subscribe(fromObserver)
}

 

결과 

그림 1

다음은 just의 코드와 결과 이다.

 

코드

 

val justObserver = object : Observer<List<String>> {
override fun onComplete() {
     println("onComplete")
}

override fun onSubscribe(d: Disposable) {
     println("New Subscribtion = ${d}")
}

override fun onNext(item: List<String>) {
     println("Next = $item")
}

override fun onError(e: Throwable) {
    println("Error Occured ${e.message}")
}
}

 

fun simpleObservableJust() {
   val list = listOf("String1", "String2", "String3", "String4")
   val observableFromIterable = Observable.just(list)
   observableFromIterable.subscribe(justObserver)
}

 

결과

그림 2

 

참고로 from을 설명 했는데 예제에서 fromIterable 을 사용한 이유는 

RxKotlin 1에서는 Observerble.from을 사용했었지만, RxKotlin 2.0에서는 연산자 오버로드로

fromFuture, fromIterable, fromCallable 등과 같이 접미사가 추가 되었다. 

반응형

'공부방 > RxKotlin' 카테고리의 다른 글

What is BackPressure? (BackPressure 란?)  (0) 2019.07.25
What is ConnectableObservable?  (0) 2019.07.23
cold observable and hot observable  (0) 2019.07.23
What is Observable?  (0) 2019.07.23
Simple Observable  (0) 2019.07.23
Comments