que observables example ejemplo java rx-java subject-observer

java - example - observables angular 6



¿Cómo se pueden cancelar la suscripción a PublishSubject y BehaviorSubject? (3)

En el paquete de subjects , tiene clases como PublishSubject y BehaviorSubject que supongo se pueden describir como algunas muestras utilizables de Observables .

¿Cómo pueden darse de baja estos temas? No hay un método para unsubscribe y el hecho de llamar a onCompleted termina el Observable del todo, ¿verdad?


Los sujetos son esencialmente Observables y Observadores.

Un Observable es esencialmente una cosa que tiene una función que toma un observador y devuelve una suscripción. Entonces, por ejemplo, dado simple observable:

Observable<Integer> observable = Observable.create(new Observable.OnSubscribeFunc<Integer>() { @Override public Subscription onSubscribe(Observer<? super Integer> observer) { observer.onNext(3); observer.onNext(2); observer.onNext(1); observer.onCompleted(); return Subscriptions.empty(); } });

Y aquí nos suscribimos a él, para imprimir una línea para cada entero:

Subscription sub = observable.subscribe(new Action1<Integer>() { @Override public void call(Integer integer) { System.out.println(integer); } });

Usted cancelaría su suscripción a lo anterior llamando a sub.unsubscribe() .

Aquí hay un PublishSubject que hace más o menos lo mismo:

PublishSubject<Integer> publishSubject = PublishSubject.create(); Subscription subscription = publishSubject.subscribe(new Action1<Integer>() { @Override public void call(Integer integer) { System.out.println(integer); } }); publishSubject.onNext(3); publishSubject.onNext(2); publishSubject.onNext(1);

Usted cancelaría su suscripción de la misma manera, llamando a subscription.unsubscribe() .


Todos los Subjects extienden a Observable y pueden suscribirse utilizando cualquiera de los múltiples métodos de subscribe(...) . La llamada a cualquiera de los métodos de subscribe(...) devuelve una Subscription .

Subscription subscription = anySubject.subscribe(...);

Utilice el método de unsubscribe() de unsubscribe() esta instancia de unsubscribe() cuando desee dejar de escuchar los eventos del Asunto.

subscription.unsubscribe();


Un sujeto es un Observable y un Observer al mismo tiempo, puede darse de baja de la misma manera que los observables normales. lo que hace especial al sujeto es que es una especie de puente entre observables y observadores. puede pasar por los elementos que observa al reemitirlos, y también puede emitir nuevos elementos. los sujetos son observables ya que las promesas son para futuros.

aquí hay una breve descripción de la familia de los sujetos:

AsyncSubject : solo emite el último valor de la fuente Observable

BehaviorSubject : emite el elemento emitido más recientemente y todos los elementos posteriores de la fuente Observable cuando un observador se suscribe a él

PublishSubject : emite todos los elementos posteriores de la fuente Observable en el momento de la suscripción

ReplaySubject : emite todos los elementos de la fuente Observable, independientemente de cuándo se suscriba el suscriptor.

el documento oficial viene con algunos agradables diagramas de mármol que hace que sea más fácil de entender