Operador RxJava – Concat y Merge

RxJava es la biblioteca más importante y es ampliamente utilizada por los desarrolladores de Android. Nos simplifica la vida. RxJava se usa para subprocesos múltiples, administrar procesos en segundo plano y eliminar los infiernos de devolución de llamadas. RxJava nos permite abordar una amplia gama de casos de uso complicados. Nos permite lograr cosas complejas de una manera muy fácil. Nos da la capacidad. Y como dice el dicho de tu película de superhéroes: Con grandes poderes, viene una gran responsabilidad. RxJava contiene una plétora de operadores. Debemos ser conscientes de ellos para utilizarlos adecuadamente. Los operadores Concat y Merge se cubrirán en esta sección.

el concat

Concatena las emisiones de dos o más Observables sin intercalarlas. Mientras emite los elementos, mantendrá el orden de los observables. Es decir, emitirá todos los elementos del primer observable, luego todos los elementos del segundo observable, y así sucesivamente.

Diagrama 1. Explicando Concatenar

Veamos un ejemplo para ayudarte a entender:

Java

final String[] gfgList = { "DSA", "Py", "Android", "Java" };
final String[] gfgListTwo = { "Intern", "FullTime", "PartTime" };
  
final Observable<String> gfgObs1 = Observable.fromArray(gfgList);
final Observable<String> gfgObs2 = Observable.fromArray(gfgListTwo);
  
Observable.concat(gfgObs1, gfgObs2)
    .subscribe(new Observer<String>() {
        @Override public void onSubscribe(Disposable d)
        {
            // Your Code
        }
        @Override public void onNext(String value)
        {
            // Your Code
        }
        @Override public void onError(Throwable e)
        {
            // Your Code
        }
        @Override public void onComplete()
        {
            // Your Code
        }
  });

Producción:

Debido a que estamos utilizando el Operador Concat, el orden se conservará y los valores se emitirán como:

DSA, Py, Android, Java, Intern, FullTime, PartTime.

la fusión

Fusiona las emisiones de múltiples Observables para crear un solo Observable. No mantendrá el orden mientras emite cosas.

Diagrama 2. Explicación de Merge.

Ahora, como concatenar, veamos un ejemplo:

Java

final String[] gfgList = {"DSA", "Py", "Android", "Java"};
final String[] gfgListTwo = {"Intern", "FullTime", "PartTime"};
  
final Observable<String> gfgList = Observable.fromArray(gfgList);
final Observable<String> gfgListTwo = Observable.fromArray(gfgListTwo);
  
Observable.merge(gfgList, observableSecond)
        .subscribe(new Observer<String>() {
  
            @Override
            public void onSubscribe(Disposable d) {
                // Your Code
            }
  
            @Override
            public void onNext(String value) {
                // Your Code
            }
  
            @Override
            public void onError(Throwable e) {
                // Your Code
            }
  
            @Override
            public void onComplete() {
                // Your Code
            }
        });

Producción:

Debido a que estamos utilizando el Operador de combinación, los valores se pueden emitir en cualquier secuencia, como:

DSA, Android, Intern, Java, FullTime, Py, PartTime 

o 

PartTime, Java, FullTime, Android, DSA, Intern, Py 

o algo.

Conclusión

Esto fue todo por este artículo, espero haberte ayudado a entender cómo difieren ambos métodos, dependiendo de nuestro caso de uso, deberíamos utilizar los operadores Concat y Merge en RxJava.

Publicación traducida automáticamente

Artículo escrito por icloudanshu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *