RxPY - Bản cập nhật phát hành mới nhất
Trong hướng dẫn này, chúng tôi đang sử dụng RxPY phiên bản 3 và phiên bản python 3.7.3. Hoạt động của RxPY phiên bản 3 khác một chút với phiên bản trước đó, tức là RxPY phiên bản 1.
Trong chương này, chúng ta sẽ thảo luận về sự khác biệt giữa 2 phiên bản và những thay đổi cần thực hiện trong trường hợp bạn đang cập nhật phiên bản Python và RxPY.
Có thể quan sát trong RxPY
Trong phiên bản RxPy 1, Observable là một lớp riêng biệt -
from rx import Observable
Để sử dụng Observable, bạn phải sử dụng nó như sau:
Observable.of(1,2,3,4,5,6,7,8,9,10)
Trong phiên bản RxPy 3, Observable trực tiếp là một phần của gói rx.
Example
import rx
rx.of(1,2,3,4,5,6,7,8,9,10)
Các toán tử trong RxPy
Trong phiên bản 1, toán tử là các phương thức trong lớp Observable. Ví dụ, để sử dụng các toán tử, chúng ta phải nhập Observable như hình dưới đây:
from rx import Observable
Ví dụ: các toán tử được sử dụng như Observable.operator, như được hiển thị bên dưới:
Observable.of(1,2,3,4,5,6,7,8,9,10)\
.filter(lambda i: i %2 == 0) \
.sum() \
.subscribe(lambda x: print("Value is {0}".format(x)))
Trong trường hợp RxPY phiên bản 3, các toán tử là chức năng và được nhập và sử dụng như sau:
import rx
from rx import operators as ops
rx.of(1,2,3,4,5,6,7,8,9,10).pipe(
ops.filter(lambda i: i %2 == 0),
ops.sum()
).subscribe(lambda x: print("Value is {0}".format(x)))
Các toán tử chuỗi sử dụng phương thức Pipe ()
Trong phiên bản RxPy 1, trong trường hợp bạn phải sử dụng nhiều toán tử trên một thiết bị có thể quan sát được, nó phải được thực hiện như sau:
Example
from rx import Observable
Observable.of(1,2,3,4,5,6,7,8,9,10)\
.filter(lambda i: i %2 == 0) \
.sum() \
.subscribe(lambda x: print("Value is {0}".format(x)))
Tuy nhiên, trong trường hợp RxPY phiên bản 3, bạn có thể sử dụng phương thức pipe () và nhiều toán tử như được hiển thị bên dưới:
Example
import rx
from rx import operators as ops
rx.of(1,2,3,4,5,6,7,8,9,10).pipe(
ops.filter(lambda i: i %2 == 0),
ops.sum()
).subscribe(lambda x: print("Value is {0}".format(x)))