RxPY - Последние обновления выпуска

В этом руководстве мы используем RxPY версии 3 и python версии 3.7.3. Работа RxPY версии 3 немного отличается от более ранней версии, то есть RxPY версии 1.

В этой главе мы собираемся обсудить различия между двумя версиями и изменения, которые необходимо сделать, если вы обновляете версии Python и RxPY.

Наблюдается в RxPY

В RxPy версии 1 Observable был отдельным классом -

from rx import Observable

Чтобы использовать Observable, вы должны использовать его следующим образом:

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

В RxPy версии 3 Observable является непосредственно частью пакета rx.

Example

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

Операторы в RxPy

В версии 1 оператором были методы в классе Observable. Например, чтобы использовать операторы, мы должны импортировать Observable, как показано ниже -

from rx import Observable

Операторы используются как Observable.operator, например, как показано ниже -

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

В случае RxPY версии 3 операторы являются функциями, импортируются и используются следующим образом:

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

Операторы цепочки с использованием метода Pipe ()

В RxPy версии 1, если вам нужно было использовать несколько операторов для наблюдаемого, это нужно было сделать следующим образом:

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

Но в случае RxPY версии 3 вы можете использовать метод pipe () и несколько операторов, как показано ниже -

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