A langganan boleh dikongsi oleh penerbit dan pelanggan untuk tujuan pengantaraan #🎜#🎜 🎜🎜#Pertukaran. Inilah sebabnya kaedah subscribe() tidak mengembalikan langganan yang dibuat, sebaliknya mengembalikan void. Langganan hanya dihantar kepada pelanggan melalui kaedah onSubscribe(). Antara muka langganan mengandungi dua kaedah: request() dan cancel(). Tatabahasa
<strong>public interface Subscription {
public void request(long n);
public void cancel();
}</strong>
Peraturan antara muka langganan:
#🎜🎜🎜#🎜🎜🎜🎜🎜 Kaedah )
dan
Subscription.cancel()- hanya boleh dipanggil dalam konteks pelanggan mereka. Langganan mesti membenarkan pelanggan memanggil Subscription.request() kaedah
onNext()- atau #🎜🎜() dari dalamSubscribe Kaedah. Subscription.request() Kaedah mesti menetapkan had atas yang mungkin antara penerbit
dan - pelanggan#🎜 rekursi. Subscription.request()Kaedah harus menghormati tindak balas pemanggil mereka dengan mengembalikan #🎜🎜() #Langganan🎜 🎜# Kaedah mesti menghormati tindak balas pemanggil dengan kembali segera dan mesti
thread-safe - . Walaupun langganan tidak dibatalkan, kaedah
Subscription.request(long n)- mesti mendaftarkan bilangan elemen tambahan yang diberikan untuk dijana untuk pelanggan yang sepadan. Walaupun langganan tidak dibatalkan, kaedah Subscription.request(long n) strong> mesti memanggil
onError()- dan membuang # 🎜🎜 #IllegalArgumentException jika parameter ialah
Apabila langganan tidak dibatalkan, kaedah - Subscription.request(long n) boleh dipanggil serentak onNext() pada ini pelanggan atau pelanggan lain. Apabila langganan tidak dibatalkan, kaedah Subscription.request(long n) boleh dipanggil serentak
- onComplete() atau #🎜 🎜# onError() kaedah. Walaupun langganan tidak dibatalkan, kaedah
Subscription.cancel()- mesti meminta penerbit berhenti memberi isyarat kepada pelanggannya. Operasi ini tidak menjejaskan langganan serta-merta. Walaupun langganan tidak dibatalkan, kaedah Subscription.cancel() mesti meminta penerbit memadamkan sebarang rujukan kepada langganan yang sepadan. Memanggil kaedah
Subscription.cancel()- dan Subscription.request() mesti kembali seperti biasa.
-
>Langganan mesti menyokong bilangan permintaan panggilan tanpa had dan menyokong maksimum
2^63-1- keperluan. Jika permintaan adalah sama dengan atau lebih besar daripada 2^63-1, penerbit boleh mempertimbangkan sahunbounded.
Atas ialah kandungan terperinci Apakah peraturan untuk antara muka Langganan dalam Java 9?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!