RxPY - Работа с наблюдаемыми

Наблюдаемый - это функция, которая создает наблюдателя и присоединяет его к источнику, где ожидаются значения, например, щелчки, события мыши от элемента dom и т. Д.

Указанные ниже темы будут подробно изучены в этой главе.

  • Создать наблюдаемые

  • Подписка и выполнение наблюдаемого

Создать наблюдаемые

Для создания наблюдаемого мы будем использовать create() метод и передайте ему функцию, которая имеет следующие элементы.

  • on_next() - Эта функция вызывается, когда Observable испускает элемент.

  • on_completed() - Эта функция вызывается, когда Observable завершается.

  • on_error() - Эта функция вызывается при возникновении ошибки в Observable.

Для работы с методом create () сначала импортируйте метод, как показано ниже -

from rx import create

Вот рабочий пример для создания наблюдаемого -

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

Подписка и выполнение наблюдаемого

Чтобы подписаться на наблюдаемый объект, нам нужно использовать функцию subscribe () и передать функцию обратного вызова on_next, on_error и on_completed.

Вот рабочий пример -

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

Метод subscribe () заботится о выполнении наблюдаемого. Функция обратного вызоваon_next, on_error и on_completedнеобходимо передать методу подписки. Вызов метода подписки, в свою очередь, выполняет функцию test_observable ().

Необязательно передавать все три функции обратного вызова методу subscribe (). Вы можете передать в соответствии с вашими требованиями on_next (), on_error () и on_completed ().

Лямбда-функция используется для on_next, on_error и on_completed. Он примет аргументы и выполнит данное выражение.

Вот результат созданного наблюдаемого -

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