본문 바로가기

프로그래밍/RxJava

[RxJava] Observable - fromPublisher() 함수

Publisher는 자바 9의 표준인 Flow API의 일부이다.

 

먼저, fromPublisher() 함수를 통해서 Observable을 만드는 방법이다.

private void basic(){
        Publisher<String> publisher = (Subscriber<? super String> s) -> {
            s.onNext("Hello Observable.fromPublisher()");
            s.onComplete();
        };
        Observable<String> source = Observable.fromPublisher(publisher);
        source.subscribe(System.out::println);
    }
결과값
Hello Observable.fromPublisher()

Publisher 인터페이스는 기존의 RxJava와 비교하면 패키지 이름이 다르다.

Observable은 io.reactivex 패키지인데, Publisher와 Subscriber 클래스의 패키지는 org.reactivestreams이다.

 

그리고 Publisher 객체는 Observable.create()와 마찬가지로 onNext(), onComplete()함수를 호출할 수 있다.

 

아래는 람다 표현식을 사용하지 않는 예이다.

private void withoutLambda(){
        Publisher<String> publisher = new Publisher<String>(){
            @Override
            public void subscribe(Subscriber<? super String> s) {
                s.onNext("Hello Observable.fromPublisher()");
                s.onComplete();
            }
        };
        Observable<String> source = Observable.fromPublisher(publisher);
        source.subscribe(System.out::println);
    }

 

fromPublisher() 함수 전체 코드 보러가기