Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Các quy tắc cho interface Subscriber trong Java 9?

Subscriber interface subscribe đến publisher để nhận item qua onNext(), thông báo lỗi qua onError(), hoặc tín hiệu không còn item qua onComplete(). Trước khi những điều đó xảy ra, publisher gọi onSubscription().

public interface Subscriber<T> {
    public void onSubscribe(Subscription s);
    public void onNext(T t);
    public void onError(Throwable t);
    public void onComplete();
}

Quy tắc cho interface Subscriber:

  • Subscriber phải gọi qua Subscription.request(long n) để nhận tín hiệu onNext().
  • Subscriber.onComplete() và Subscriber.onError(Throwable t) không được gọi method nào trên Subscription hoặc Publisher.
  • Subscriber.onComplete() và Subscriber.onError(Throwable t) phải coi Subscription đã bị hủy sau khi nhận tín hiệu.
  • Subscriber phải gọi Subscription.cancel() trên Subscription cho trước sau tín hiệu onSubscribe() nếu đã có Subscription active.
  • Subscriber phải gọi Subscription.cancel() nếu Subscription không còn cần thiết.
  • Subscriber đảm bảo tất cả gọi trên request và cancel của Subscription được thực hiện tuần tự.
  • Subscriber phải nhận một hoặc nhiều tín hiệu onNext() sau khi gọi Subscription.cancel() nếu vẫn còn phần tử requested pending. Phương thức không đảm bảo thực hiện cleaning ngay lập tức.
  • Subscriber phải nhận tín hiệu onComplete() có hoặc không có lời gọi Subscription.request(long n) trước đó.
  • Subscriber phải nhận tín hiệu onError() có hoặc không có lời gọi Subscription.request(long n) trước đó.
  • Subscriber đảm bảo tất cả gọi trên method signal xảy ra trước xử lý tín hiệu tương ứng. Nghĩa là Subscriber phải chăm sóc publish đúng tín hiệu cho logic xử lý.
  • Subscriber.onSubscribe() phải gọi tối đa một lần cho Subscriber cho trước.
  • Gọi onSubscribe(), onNext(), onError() hoặc onComplete() phải trả về trừ khi tham số cung cấp là null – lúc đó ném NullPointerException cho caller.