RxPY - najnowsze aktualizacje wydania

W tym samouczku używamy RxPY w wersji 3 i Pythona w wersji 3.7.3. Działanie RxPY w wersji 3 różni się nieco od wcześniejszej wersji, czyli RxPY w wersji 1.

W tym rozdziale omówimy różnice między dwiema wersjami i zmiany, które należy wprowadzić w przypadku aktualizacji wersji Python i RxPY.

Zaobserwowane w RxPY

W RxPy w wersji 1 Observable było osobną klasą -

from rx import Observable

Aby użyć Observable, musisz użyć go w następujący sposób -

Observable.of(1,2,3,4,5,6,7,8,9,10)

W wersji 3 RxPy Observable jest bezpośrednio częścią pakietu rx.

Example

import rx
rx.of(1,2,3,4,5,6,7,8,9,10)

Operatory w RxPy

W wersji 1 operatorem były metody z klasy Observable. Na przykład, aby skorzystać z operatorów, musimy zaimportować Observable, jak pokazano poniżej -

from rx import Observable

Operatory są używane jako Observable.operator, na przykład, jak pokazano poniżej -

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

W przypadku RxPY w wersji 3 operatory są funkcjami i są importowane i używane w następujący sposób -

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

Operatory łańcuchowe przy użyciu metody Pipe ()

W wersji 1 RxPy, gdybyś musiał użyć wielu operatorów na obserwowalnym, należało to zrobić w następujący sposób -

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

Ale w przypadku RxPY w wersji 3 możesz użyć metody pipe () i wielu operatorów, jak pokazano poniżej -

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