공부방/RxKotlin
defualtIfEmpty and switchIfEmpty
soycrab
2019. 7. 29. 15:08
defualtIfEmpty
어떠한 배출 값도 없을 때 또는 빈 프로듀서가 나타날때
Default 값을 배출한다.
Code
Observable.range(0, 10)
.filter { it > 10 }
.defaultIfEmpty(15)
.subscribe{println("Receive $it")}
결과
예외
만약 필터링에
Observable.range(0, 10)
.filter { it > 8 }
.defaultIfEmpty(15)
.subscribe{println("Receive $it")}
배출되는 값이 있을경우 .defaultIfEmpty(15) 는 출력 되지 않는다.
결과
switchIfEmpty
어떠한 배출값도 없는경우 Default Observable을 반환 할수 있다.
Code
Observable.range(0, 10)
.filter { it > 10 }
.switchIfEmpty(Observable.range(11, 10))
.subscribe{println("Receive $it")}
결과
예외
defaultIfEmpty 와 마찬가지로 배출값이 있을경우는 Default 값이 배출되지 않는다.
참고 : http://reactivex.io/documentation/operators/defaultifempty.html
반응형