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!