ReactiveX
3. RXJava ObservableOnSubscribe란 무엇일까?
코코넛딩
2023. 12. 5. 17:49
챗 지피티가 알려준 내용입니다. 틀린 내용이 있다면 댓글 달아주세요.
ObservableOnSubscribe의 기본적인 사용방법
- 이 인터페이스는 Observable을 생성할 때 사용되며, 데이터 스트림의 생성및 방출 방식을 정의합니다.
- Observable 인터페이스를 구현 하려면 subscribe 메서드를 오버라이드 해야합니다.
- subscribe 메서드는 ObservableEmitter 타입의 인자를 받으며, 이를 통해 데이터를 방출하거나, 에러를 방출하거나, 스트림을 완료할 수 있습니다.
Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> emitter) throws Exception {
// 데이터를 방출합니다.
emitter.onNext("Hello");
emitter.onNext("RxJava");
// 에러를 방출합니다.
// emitter.onError(new Exception("Example Exception"));
// 스트림을 완료합니다.
emitter.onComplete();
}
});
- ObservableEmitter
- Observable을 통해 데이터를 방출하는데 사용되는 인터페이스이다.
- 이 인터페이스는 Observable.create() 메서드를 사용할 때 제공되며, 데이터 스트림을 동적으로 생성하고 관리하는 데 필요한 메소드들을 제공한다.
- subscribe()
- Observable에 구독할 때 호출된다.
- ObservableEmitter의 주요 메소드
- onNext(T value)
- Observable이 데이터 항목을 방출할 때 사용된다.
- 구독자들에게 전달될 데이터 항목을 인자로 받는다.
- onError(Trowable error)
- 에러가 발생했을 때 호출된다.
- 이 메소드가 호출되면 더이상 onNext나 onComplete가 호출되지 않는다.
- onComplete()
- Observable이 데이터 방출을 완료했을 때 호출된다.
- onComplete이후에는 더이상 onNext 호출이 없다.
- onNext(T value)
Observable<String> observable = Observable.create(emitter -> {
try {
emitter.onNext("First Item");
emitter.onNext("Second Item");
emitter.onComplete();
} catch (Throwable e) {
emitter.onError(e);
}
});