RxPY - Ultimi aggiornamenti di rilascio

In questo tutorial, stiamo usando RxPY versione 3 e python versione 3.7.3. Il funzionamento di RxPY versione 3 differisce leggermente dalla versione precedente, ovvero RxPY versione 1.

In questo capitolo, discuteremo le differenze tra le 2 versioni e le modifiche che devono essere eseguite nel caso in cui si stiano aggiornando le versioni Python e RxPY.

Osservabile in RxPY

Nella versione 1 di RxPy, Observable era una classe separata -

from rx import Observable

Per usare l'osservabile, devi usarlo come segue:

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

In RxPy versione 3, Observable è direttamente una parte del pacchetto rx.

Example

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

Operatori in RxPy

Nella versione 1, l'operatore era metodi nella classe Observable. Ad esempio, per utilizzare gli operatori dobbiamo importare Observable come mostrato di seguito:

from rx import Observable

Gli operatori vengono utilizzati come Observable.operator, ad esempio, come mostrato di seguito:

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

Nel caso di RxPY versione 3, gli operatori sono funzionali e vengono importati e utilizzati come segue:

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

Concatenamento di operatori utilizzando il metodo Pipe ()

In RxPy versione 1, nel caso in cui dovessi usare più operatori su un osservabile, doveva essere fatto come segue:

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

Ma, in caso di RxPY versione 3, puoi usare il metodo pipe () e più operatori come mostrato di seguito -

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