Descripción de RxJava Create y from Callable Operator

En este artículo, aprenderemos sobre los operadores RxJava Create y fromCallable. Podemos elegir entre la función requerida según el conjunto de habilidades requerido. Con frecuencia cometemos errores al utilizar operadores RxJava. Aclaremos esto para no cometer un error.

Con ejemplos, estudiaremos las siguientes operaciones.

  • Crear
  • de Callable

1. Crear

Se debe crear el operador RxJava.

Imagen 1. El Operador RxJava.

Operador de compilación: use una función para crear un Observable desde cero.

Usando el Operador Crear, podemos hacer un trabajo y seguir emitiendo valores uno por uno hasta que se complete la operación. 

Echemos un vistazo a un ejemplo:

Java

Observable.create<String> { shooter ->
    // do something
    if (!shooter.isDisposed) {
        shooter.onNext("GeeksforGeeks")
    }
    // do and emit
    if (!shooter.isDisposed) {
        shooter.onNext("GfG")
    }
    // on finish
    if (!shooter.isDisposed) {
        shooter.onComplete()
    }
}
.subscribeOn(Schedulers.io())
.subscribe { item ->
    Log.d("Android", "item : $item")
}

Producción:

"GeeksforGeeks" "GfG"

Este operador crea un observable desde cero, pero incluso después de eso, solo puede disparar 1 elemento a la vez, ¡por lo tanto, devuelve un elemento!

Imagen 2. El Invocable.

Java

Observable.fromCallable<String> {
    // perform a task and then return
    return@fromCallable "Geeks for Geeks"
}

Producción: 

Geeks for Geeks

Esto no implica que fromCallable sea equivalente a Single. Veremos cómo varía realmente más adelante. Ambos seguirán postergando la acción hasta ya menos que hagan alguna observación. Esto significa que hace que la tarea sea «perezosa».

Entonces, aquí están las distinciones clave entre los operadores Create y fromCalable:

  1. Create puede producir varias cosas, mientras que fromCallable solo puede producir una.
  2. No existe un método fácil para ver si isDisposed in fromCallable está presente como lo está en Create. Por lo tanto, si dispara un elemento después de que se haya desechado, ese objeto desechable se maneja con el controlador de errores global. Implica que la aplicación será terminada.

Conclusión

Aquí podemos usar RxJava Create para resolver este problema, espero que este artículo aclare cualquier duda que haya surgido y elimine la niebla del conocimiento.

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 *