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!