RxPY - Lavorare con gli osservabili

Un osservabile è una funzione che crea un osservatore e lo collega alla sorgente in cui sono previsti valori, ad esempio clic, eventi del mouse da un elemento dom, ecc.

Gli argomenti menzionati di seguito saranno studiati in dettaglio in questo capitolo.

  • Crea osservabili

  • Sottoscrivi ed esegui un osservabile

Crea osservabili

Per creare un osservabile useremo create() e passagli la funzione che ha i seguenti elementi.

  • on_next() - Questa funzione viene chiamata quando l'osservabile emette un oggetto.

  • on_completed() - Questa funzione viene chiamata quando l'Observable è completo.

  • on_error() - Questa funzione viene chiamata quando si verifica un errore sull'Observable.

Per lavorare con il metodo create () prima importa il metodo come mostrato di seguito -

from rx import create

Ecco un esempio funzionante, per creare un osservabile:

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).

Sottoscrivi ed esegui un osservabile

Per iscriversi a un osservabile, è necessario utilizzare la funzione subscribe () e passare la funzione di callback on_next, on_error e on_completed.

Ecco un esempio funzionante:

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!"),
)

Il metodo subscribe () si occupa di eseguire l'osservabile. La funzione di callbackon_next, on_error e on_completeddeve essere passato al metodo di sottoscrizione. La chiamata al metodo di sottoscrizione, a sua volta, esegue la funzione test_observable ().

Non è obbligatorio passare tutte e tre le funzioni di callback al metodo subscribe (). Puoi passare secondo i tuoi requisiti on_next (), on_error () e on_completed ().

La funzione lambda viene utilizzata per on_next, on_error e on_completed. Prenderà gli argomenti ed eseguirà l'espressione data.

Ecco l'output, dell'osservabile creato -

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