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);
}
'프로그래밍 > RxJava' 카테고리의 다른 글
[RxJava] Single - just() 함수와 Observable에서 Single 클래스를 사용하는 다양한 방법 (0) | 2020.02.17 |
---|---|
[RxJava] Single 클래스 (0) | 2020.02.16 |
[RxJava] Observable - fromFuture() 함수 (0) | 2020.02.16 |
[RxJava] Observable - fromCallable() 함수 (0) | 2020.02.16 |
[RxJava] Observable - fromIterable()함수 (0) | 2020.02.16 |