Page 21 -
P. 21
Publisher와 Subscriber가 사용하는 Subscription은 통지받을 데이터 개수를 지정해 데이터 통
지를 요청하거나 통지받지 않게 구독을 해지할 때 사용하는 인터페이스입니다. Subscription은
Publisher에서 인스턴스가 생성돼 통지 준비가 끝났을 때 호출하는 onSubscribe 메서드의 인자 1
로 Subscriber에 전달됩니다. 이 Subscription을 받은 Subscriber는 Subscription의 메서드를
호출해 데이터 개수를 요청하거나 구독을 해지합니다. RxJava의 기본
또한, onNext 메서드에서 이 Subscription을 사용하려면 onSubscribe 메서드로 전달받은
Subscription이 Subscriber 내부에 있어야 합니다.
예제 1-6 Subscription 보관
publisher.subscribe(new Subscriber<T>() {
// subscriber 내부에 Subscription 보관하기
private Subscription subscription;
@Override
public void onSubscribe(Subscription subscription) {
// 받은 Subscription을 Subscriber 내부에 보관한다
this.subscription = subscription;
// 처음에 통지받을 데이터 개수를 요청한다
this.subscription.request(num);
(중략)
}
@Override
public void onNext(T item) {
(중략)
// 요청한 데이터를 처리하면 다음 데이터 개수를 요청한다
subscription.request(num);
}
(중략)
});
029
RxJava 리액티브 프로그래밍(본문)최종.indd 29 2019-03-26 오전 11:26:31