RxPY - praca z obserwowalnymi

Obserwowalne to funkcja, która tworzy obserwatora i dołącza go do źródła, w którym oczekiwane są wartości, na przykład kliknięcia, zdarzenia myszy z elementu dom itp.

Tematy wymienione poniżej zostaną szczegółowo omówione w tym rozdziale.

  • Utwórz obserwowalne

  • Zasubskrybuj i wykonaj obserwowalne

Twórz obserwowalne

Aby stworzyć obserwowalne, użyjemy create() metoda i przekaż do niej funkcję, która zawiera następujące elementy.

  • on_next() - Ta funkcja jest wywoływana, gdy Observable emituje element.

  • on_completed() - Ta funkcja jest wywoływana po zakończeniu Observable.

  • on_error() - Ta funkcja jest wywoływana, gdy wystąpi błąd w Observable.

Aby pracować z metodą create (), najpierw zaimportuj metodę, jak pokazano poniżej -

from rx import create

Oto działający przykład tworzenia obserwowalnych -

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

Zasubskrybuj i wykonaj obserwowalne

Aby zasubskrybować obserwowalną, musimy użyć funkcji subscribe () i przekazać funkcję zwrotną on_next, on_error i on_completed.

Oto działający przykład -

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

Metoda subscribe () dba o wykonanie obserwowalnego. Funkcja oddzwanianiaon_next, on_error i on_completedmusi zostać przekazana do metody subscribe. Z kolei wywołanie metody subscribe powoduje wykonanie funkcji test_observable ().

Przekazywanie wszystkich trzech funkcji zwrotnych do metody subscribe () nie jest obowiązkowe. Możesz przekazać zgodnie ze swoimi wymaganiami on_next (), on_error () i on_completed ().

Funkcja lambda jest używana dla on_next, on_error i on_completed. Przyjmie argumenty i wykona podane wyrażenie.

Oto wynik tego, co można zaobserwować -

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