이번 글에서는 Observable을 생성하는 Operator에 대해 이야기 합니다.
Observable을 생성하는 Operator는 아래와 같이 있습니다.
emitter를 지정하고 함수 내부에서 onNext(), onError(), onComplete() 를 호출 해서 데이터를 전달 할 수 있습니다.
fun main() {
val observable = Observable.create<String> { emitter ->
// Hello 전달
emitter.onNext("Hello")
// World 전달
emitter.onNext("World")
// 완료
emitter.onComplete()
}
observable.subscribe({
// onNext로 전달 된 데이터 출력
println(it)
}, {
// 에러 처리
it.printStackTrace()
}, {
// 완료 이벤트
println("onComplete")
})
}
ObservableSource를 리턴하는 Callable을 받는 operator입니다. subscribe 하기 전까지 Observable을 만들지 않습니다.
fun main() {
val observable = Observable.defer {
ObservableSource<Int> {
println("생산")
it.onNext(1)
}
}
observable.subscribe { println(it) }
observable.subscribe { println(it) }
}
데이터 전달 없이 완료처리, 무처리, 에러처리 를 하는 Observable을 만듭니다.
데이터를 전달하지는 않고 완료 처리 만 하는 Observable을 만드는 operator 입니다.
fun main() {
val observable = Observable.empty<String>()
observable.subscribe({
// onNext로 전달 된 데이터 출력
println(it)
}, {
// 에러 처리
it.printStackTrace()
}, {
// 완료 이벤트
println("onComplete")
})
}