RxPY - Làm việc với các thiết bị có thể quan sát

Có thể quan sát, là một hàm tạo trình quan sát và gắn nó vào nguồn mà các giá trị được mong đợi, ví dụ: nhấp chuột, sự kiện chuột từ một phần tử dom, v.v.

Các chủ đề được đề cập dưới đây sẽ được nghiên cứu chi tiết trong chương này.

  • Tạo có thể quan sát

  • Đăng ký và thực hiện một quan sát được

Tạo vật có thể quan sát

Để tạo ra một cái có thể quan sát được, chúng tôi sẽ sử dụng create() và truyền hàm cho nó có các mục sau.

  • on_next() - Hàm này được gọi khi Observable phát ra một mục.

  • on_completed() - Hàm này được gọi khi Observable hoàn tất.

  • on_error() - Hàm này được gọi khi có lỗi xảy ra trên Observable.

Để làm việc với phương thức create (), trước tiên hãy nhập phương thức như hình dưới đây:

from rx import create

Đây là một ví dụ hoạt động, để tạo ra một -

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

Đăng ký và thực hiện một quan sát được

Để đăng ký một hàm có thể quan sát được, chúng ta cần sử dụng hàm subscribe () và chuyển hàm gọi lại on_next, on_error và on_completed.

Đây là một ví dụ hoạt động -

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

Phương thức subscribe () đảm nhận việc thực thi phương thức có thể quan sát được. Chức năng gọi lạion_next, on_erroron_completedphải được chuyển đến phương thức đăng ký. Lần lượt gọi phương thức đăng ký thực thi hàm test_observable ().

Không bắt buộc phải chuyển cả ba hàm gọi lại cho phương thức subscribe (). Bạn có thể chuyển on_next (), on_error () và on_completed () theo yêu cầu của mình.

Hàm lambda được sử dụng cho on_next, on_error và on_completed. Nó sẽ nhận các đối số và thực thi biểu thức đã cho.

Đây là đầu ra của kết quả có thể quan sát được tạo ra -

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