RxPY - Trabajar con observables

Un observable es una función que crea un observador y lo adjunta a la fuente donde se esperan valores, por ejemplo, clics, eventos de mouse de un elemento dom, etc.

Los temas que se mencionan a continuación se estudiarán en detalle en este capítulo.

  • Crear observables

  • Suscribir y ejecutar un Observable

Crea observables

Para crear un observable usaremos create() y pasarle la función que tiene los siguientes elementos.

  • on_next() - Esta función se llama cuando el Observable emite un elemento.

  • on_completed() - Esta función se llama cuando se completa el Observable.

  • on_error() - Esta función se llama cuando ocurre un error en el Observable.

Para trabajar con el método create (), primero importe el método como se muestra a continuación:

from rx import create

Aquí hay un ejemplo práctico, para crear un observable:

testrx.py

from rx import create
deftest_observable(observer, scheduler):
   observer.on_next("Hello")
   observer.on_error("Error")
   observer.on_completed()
source = create(test_observable).

Suscribir y ejecutar un Observable

Para suscribirnos a un observable, necesitamos usar la función subscribe () y pasar la función de devolución de llamada on_next, on_error y on_completed.

Aquí hay un ejemplo de trabajo:

testrx.py

from rx import create
deftest_observable(observer, scheduler):
   observer.on_next("Hello")
   observer.on_completed()
source = create(test_observable)
source.subscribe(
   on_next = lambda i: print("Got - {0}".format(i)),
   on_error = lambda e: print("Error : {0}".format(e)),
   on_completed = lambda: print("Job Done!"),
)

El método subscribe () se encarga de ejecutar lo observable. La función de devolución de llamadaon_next, on_error y on_completeddebe pasarse al método de suscripción. La llamada al método de suscripción, a su vez, ejecuta la función test_observable ().

No es obligatorio pasar las tres funciones de devolución de llamada al método subscribe (). Puede pasar según sus requisitos on_next (), on_error () y on_completed ().

La función lambda se usa para on_next, on_error y on_completed. Tomará los argumentos y ejecutará la expresión dada.

Aquí está la salida, del observable creado:

E:\pyrx>python testrx.py
Got - Hello
Job Done!