RxJava (RxKotlin) - create(1)
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)
}