สมาชิก อินเทอร์เฟซสมัครสมาชิกผู้เผยแพร่เพื่อรับรายการผ่าน onNext() เมธอด ข้อความแสดงข้อผิดพลาดผ่าน onError () เมธอด หรือสัญญาณว่าไม่มีรายการเพิ่มเติมที่จะคาดหวังผ่าน onComplete() กระบวนการ. ก่อนที่สิ่งเหล่านั้นจะเกิดขึ้น ผู้เผยแพร่จะเรียก onSubscription() วิธีการ
public interface Subscriber<T> { public void onSubscribe(Subscription s); public void onNext(T t); public void onError(Throwable t); public void onComplete(); }
กฎสำหรับอินเทอร์เฟซสมาชิก:
- A สมาชิก ต้องโทรผ่าน Subscription.request(long n) วิธีการรับ onNext() สัญญาณ
- Subscriber.onComplete() และ Subscriber.onError(Throwable t) เมธอดต้องไม่เรียกเมธอดใดๆ ในการสมัครรับข้อมูลหรือผู้เผยแพร่
- Subscriber.onComplete() และ Subscriber.onError(Throwable t) จะต้องพิจารณาว่าการสมัครสมาชิกถูกยกเลิกหลังจากได้รับสัญญาณแล้ว
- สมาชิกต้องโทร Subscription.cancel() วิธีการสมัครรับข้อมูลหลังจาก onSubscribe() แสดงว่ามีการสมัครสมาชิกที่ใช้งานอยู่แล้ว
- สมาชิกต้องโทร Subscription.cancel() เมธอดหากไม่ต้องการสมัครสมาชิกอีกต่อไป
- สมาชิกจะตรวจสอบให้แน่ใจว่าการโทรทั้งหมดเกี่ยวกับคำขอของการสมัครรับข้อมูลและวิธีการยกเลิกจะดำเนินการตามลำดับ
- สมาชิกต้องได้รับ onNext() สัญญาณหลังจากเรียก Subscription.cancel() เมธอด หากยังมีองค์ประกอบที่ร้องขอที่รอดำเนินการอยู่ วิธีนี้ไม่รับประกันว่าจะดำเนินการทำความสะอาดพื้นฐานในทันที
- สมาชิกจะต้องได้รับ onComplete() สัญญาณที่มีหรือไม่มี Subscription.request(long n) . นำหน้า โทร.
- สมาชิกต้องได้รับ onError() สัญญาณที่มีหรือไม่มี Subscription.request(long n) . นำหน้า โทร.
- สมาชิกจะตรวจสอบให้แน่ใจว่าการเรียกทั้งหมดบนวิธีสัญญาณนั้นเกิดขึ้นก่อนการประมวลผลสัญญาณที่เกี่ยวข้อง หมายความว่าสมาชิกต้องดูแลการเผยแพร่สัญญาณที่ถูกต้องตามตรรกะในการประมวลผล
- Subscriber.onSubscribe() ต้องโทรไม่เกินหนึ่งครั้งสำหรับผู้สมัครสมาชิกที่กำหนด
- กำลังโทร onSubscribe() , onNext() , onError() หรือ onComplete() เมธอดต้องส่งคืน ยกเว้นเมื่อพารามิเตอร์ใดๆ ที่ระบุเป็นค่าว่าง ซึ่งในกรณีนี้จะต้องส่ง NullPointerException ถึงผู้โทร