본문 바로가기
2023년 이전/ReativeX

RxJava,RxKotlin - range()

by JeongUPark 2019. 12. 4.
반응형

[출처 - RxJava 프로그래밍 : 리액티브 프로그래밍 기초부터 안드로이드 까지 한번에]

본 글은 'RxJava 프로그래밍 : 리액티브 프로그래밍 기초부터 안드로이드 까지 한번에' 를 학습하면서 정리한 글입니다



마블다이어그램 참고 - http://reactivex.io/RxJava/javadoc/io/reactivex/Flowable.html#range-int-int-

 

range() 함수는 주어진 값(n)부터 m개의 integer 객체를 발행합니다. (interval과 timer 함수는 Long 객체를 발행합니다.)

 

 

range의 원 code를 보면

 @SchedulerSupport(SchedulerSupport.NONE)
    public static Observable<Integer> range(final int start, final int count)

SchedulerSupport.NONE로 보아 range도 scheduler에서 실행되지 않고 현재 스레드에서 실행되는 것을 알 수 있습니다.

 

활용한 예제 code를 보면

Java

import io.reactivex.Observable;

public class rangefun {

    public static void main(String[] args){
        Observable<Integer> source = Observable.range(1,10).filter(num-> num%2 == 0);
        source.subscribe(it -> System.out.println(it));
    }
}

Kotlin

import io.reactivex.Observable

fun main(){

    val source = Observable.range(1,10).filter { num -> num%2==0 }
    source.subscribe{it -> System.out.println(it)}
}

이고 결과는

2
4
6
8
10

로 확인 할 수 있습니다.

그리고 지금까지와 다르게 이 code는 현재 스레드에서 동작하기 떄문에 따로 interval 함수나 timer 함수와 다르게 CommonUtils.sleep(1000);를 사용하여 thread를 동작시키지 않아됩니다. 

반응형

'2023년 이전 > ReativeX' 카테고리의 다른 글

RxJava, Rxkotlin - defer()  (0) 2019.12.16
RxJava,RxKotlin - interavlRange()  (0) 2019.12.16
RxJava, RxKotlin - timer  (0) 2019.11.20
RxJava,RxKotlin - Interval  (0) 2019.11.20
RxJava,RxKotlin - reduce  (0) 2019.11.13