Client/안드로이드

RxJava (RxKotlin) - create(1)

이건욱 2020. 5. 27. 17:10

RxJava(RxKotlin)에서 Observable을 생성을 시킬때 관련 operator을 알아보도록 하겠습니다.

 

just

- Flowable , Observable , Maybe , Single 에서만 사용 가능합니다.

 

매개변수로 받은 객체로 Observable을 생성합니다. 

복수일 경우에도 타입이 같지 않아도 그만큼 onNext가 호출이 되기 때문에 오류가 발생하지 않습니다.

Observable.just("Hello world!" , 2, 3, 4).subscribeBy { println(it) }

Hello world!
2
3
4

fromArray

- Flowable , Observable 에서만 사용 가능합니다.

 

매개변수로 받은 Array에 대해서 그대로 Event을 발생합니다.

Observable.fromArray(listOf(1,2,3,4,5)).subscribeBy {
            println(it)
}

[1, 2, 3, 4, 5]

 

 

fromIterable

- Flowable , Observable 에서만 사용 가능합니다.

 

매개변수로 받은 Collection 객체를 하나 씩 돌면서 Event를 발생합니다.

Observable.fromIterable(listOf(1,2,3,4,5)).subscribeBy {
            println(it)
}
        
1
2
3
4
5

fromCallable

- Flowable , Observable , Maybe , Single , Completable 에서만 사용 가능합니다.

 

Callable은 비동기를 처리 하고 관련해서 Return값을 받을수 있습니다.

 Observable.fromCallable {
            listOf(1,2,3,4,5)
        }.subscribeBy {
            println(it)
        }

[1, 2, 3, 4, 5]

fromAction

- Maybe , Completable 에서만 사용 가능합니다.

 

Action 객체가 에러가 발생을 했거나 혹은 완료가 되었을 때 Event을 받을수가 있습니다.

Completable.fromAction {
	Action {
		listOf(1,2,3,4,5)
		}
	}.subscribeBy {
		println("finish")
	};

fromFuture

- Flowable , Observable , Maybe , Single , Completable 에서만 사용 가능합니다.

 

Future 인터페이스를 통해서 비동기 계산을 통해 Return 값을 구할 때 사용을 합니다.

보통 Executor 인터페이스를 구현한 클래스에서 Callable 객체를 인자로 넣어서 Future 객체를  반환합니다.

 val future = Executors.newSingleThreadExecutor().submit<String> {
            Thread.sleep(1000)
            return@submit "Hello World"
        }

        Observable.fromFuture(future).subscribeBy {
            println(it)
        }